'UastHintedVisitorAdapter' hints problems
Reports missing or redundant hints in UastHintedVisitorAdapter
creation.
UastHintedVisitorAdapter
receives hints that allow to optimize UAST visitor execution by visiting only elements, which classes are specified in the hint list.
If the visitor implements, e.g., visitCallExpression
method, but does not include UCallExpression
in hints, then the method will not be executed.
If the visitor does not implement, e.g., visitCallExpression
method, but does include UCallExpression
in hints, then the inherited method will be unnecessarily executed.
return UastHintedVisitorAdapter.create(
language,
object : AbstractUastNonRecursiveVisitor() {
override fun visitForExpression(node: UForExpression): Boolean {
inspectLoopExpression()
return true
}
override fun visitDoWhileExpression(node: UDoWhileExpression): Boolean { // unused at runtime
inspectLoopExpression()
return true
}
//...
},
arrayOf(UForExpression::class.java) // Bad: missing UDoWhileExpression::class.java
)
UastHintedVisitorAdapter.create(
language,
object : AbstractUastNonRecursiveVisitor() {
override fun visitForExpression(node: UForExpression): Boolean {
inspectLoopExpression()
return true
}
//...
},
arrayOf(
UForExpression::class.java,
UDoWhileExpression::class.java // Bad: visiting UDoWhileExpression is not implemented
)
)
- By ID
Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.
UastHintedVisitorAdapterHints
New in 2024.2
Inspection Details | |
---|---|
By default bundled with: | |
Can be installed with plugin: | Plugin DevKit, 243.23126 |
Thanks for your feedback!