UastHintedVisitorAdapter
创建中缺少或冗余的提示。
UastHintedVisitorAdapter
可以接收提示,这些提示允许通过仅访问提示列表中指定的类的元素来优化 UAST 访问器执行。
例如,如果访问器实现了 visitCallExpression
方法,但没有在提示中包括 UCallExpression
,则该方法将不会被执行。
例如,如果访问器没有实现 visitCallExpression
方法,但在提示中包括了 UCallExpression
,则继承的方法将被不必要地执行。
return UastHintedVisitorAdapter.create(
language,
object : AbstractUastNonRecursiveVisitor() {
override fun visitForExpression(node: UForExpression): Boolean {
inspectLoopExpression()
return true
}
override fun visitDoWhileExpression(node: UDoWhileExpression): Boolean { // 运行时未使用
inspectLoopExpression()
return true
}
//...
},
arrayOf(UForExpression::class.java) // 错误:缺少 UDoWhileExpression::class.java
)
UastHintedVisitorAdapter.create(
language,
object : AbstractUastNonRecursiveVisitor() {
override fun visitForExpression(node: UForExpression): Boolean {
inspectLoopExpression()
return true
}
//...
},
arrayOf(
UForExpression::class.java,
UDoWhileExpression::class.java // 错误:访问 UDoWhileExpression 未实现
)
)
2024.2 最新变化