UastHintedVisitorAdapter 생성 시 누락되거나 불필요한 힌트를 보고합니다.
UastHintedVisitorAdapter는 클래스가 힌트 목록에 지정되어 있는 요소에만 액세스하여 USAT 방문자 실행을 최적화할 수 있는 힌트를 받습니다.
예를 들어 방문자가 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의 새로운 기능