Rename UastHandler to UastCallback

This commit is contained in:
Yan Zhulanow
2016-03-29 22:03:02 +03:00
parent 3484f92d10
commit 7007261d7b
41 changed files with 121 additions and 121 deletions
@@ -43,10 +43,10 @@ object UastChecker {
file: File,
context: UastAndroidContext,
visitor: UastVisitor) {
check(project, file, context, UastHandler { visitor.handle(it) })
check(project, file, context, UastCallback { visitor.handle(it) })
}
fun check(project: Project, file: File, context: UastAndroidContext, handler: UastHandler) {
fun check(project: Project, file: File, context: UastAndroidContext, callback: UastCallback) {
val vfile = VirtualFileManager.getInstance().findFileByUrl("file://" + file.absolutePath) ?: return
val plugins = context.languagePlugins
@@ -57,7 +57,7 @@ object UastChecker {
list
}
val handlerWrapper = HandlerWrapper(handler, additionalCheckers, context)
val handlerWrapper = CallbackWrapper(callback, additionalCheckers, context)
ApplicationManager.getApplication().runReadAction {
val psiFile = PsiManager.getInstance(project).findFile(vfile)
@@ -80,11 +80,11 @@ object UastChecker {
}
}
private class HandlerWrapper(
val original: UastHandler,
private class CallbackWrapper(
val original: UastCallback,
val additionalCheckers: List<UastAdditionalChecker>,
val context: UastAndroidContext
) : UastHandler {
) : UastCallback {
override fun invoke(element: UElement) {
original(element)
for (checker in additionalCheckers) {
@@ -100,8 +100,8 @@ object UastChecker {
val appliesToResourcesRefs = scanner.appliesToResourceRefs()
var handler: UastHandler?
handler = UastHandler { element ->
var callback: UastCallback?
callback = UastCallback { element ->
when (element) {
is UCallExpression -> {
if (applicableFunctionNames.isNotEmpty()) {
@@ -150,7 +150,7 @@ object UastChecker {
}
}
check(project, file, context, handler)
check(project, file, context, callback)
}
}
@@ -15,6 +15,6 @@
*/
package org.jetbrains.uast;
public interface UastHandler {
public interface UastCallback {
void invoke(UElement element);
}
@@ -28,7 +28,7 @@ interface UastLanguagePlugin {
}
interface UastAdditionalChecker {
operator fun invoke(element: UElement, handler: UastHandler, context: UastContext)
operator fun invoke(element: UElement, callback: UastCallback, context: UastContext)
}
object UastConverterUtils {
@@ -44,9 +44,9 @@ tailrec fun UElement?.getContainingDeclaration(): UDeclaration? {
return parent.getContainingDeclaration()
}
fun UElement.handleTraverse(handler: UastHandler) {
handler(this)
this.traverse(handler)
fun UElement.handleTraverse(callback: UastCallback) {
callback(this)
this.traverse(callback)
}
fun UDeclaration.isTopLevel() = parent is UFile
@@ -67,10 +67,10 @@ fun UElement.log(firstLine: String, vararg nested: Any?): String {
val String.withMargin: String
get() = lines().joinToString("\n") { " " + it }
fun List<UElement>.handleTraverseList(handler: UastHandler) {
fun List<UElement>.handleTraverseList(callback: UastCallback) {
for (element in this) {
handler(element)
element.traverse(handler)
callback(element)
element.traverse(callback)
}
}
@@ -118,7 +118,7 @@ abstract class UastVisitor {
}
fun processChildren(element: UElement) {
element.traverse(UastHandler { handle(it) })
element.traverse(UastCallback { handle(it) })
}
}
@@ -19,7 +19,7 @@ interface UElement {
val parent: UElement?
fun logString(): String
fun renderString(): String = logString()
fun traverse(handler: UastHandler)
fun traverse(callback: UastCallback)
}
interface UNamed {
@@ -42,7 +42,7 @@ interface UModifierOwner {
}
interface NoTraverse : UElement {
override fun traverse(handler: UastHandler) {}
override fun traverse(callback: UastCallback) {}
}
interface UResolvable {
@@ -26,9 +26,9 @@ interface UFile: UElement {
override val parent: UElement?
get() = null
override fun traverse(handler: UastHandler) {
declarations.handleTraverseList(handler)
importStatements.handleTraverseList(handler)
override fun traverse(callback: UastCallback) {
declarations.handleTraverseList(callback)
importStatements.handleTraverseList(callback)
}
override fun logString() = "UFile (package = $packageFqName)\n" + declarations.joinToString("\n") { it.logString().withMargin }
@@ -18,9 +18,9 @@ package org.jetbrains.uast
interface UDoWhileExpression : ULoopExpression {
val condition: UExpression
override fun traverse(handler: UastHandler) {
condition.handleTraverse(handler)
body.handleTraverse(handler)
override fun traverse(callback: UastCallback) {
condition.handleTraverse(callback)
body.handleTraverse(callback)
}
override fun renderString() = buildString {
@@ -20,11 +20,11 @@ interface UForExpression : ULoopExpression {
val condition: UExpression?
val update: UExpression?
override fun traverse(handler: UastHandler) {
declaration?.handleTraverse(handler)
condition?.handleTraverse(handler)
update?.handleTraverse(handler)
body.handleTraverse(handler)
override fun traverse(callback: UastCallback) {
declaration?.handleTraverse(callback)
condition?.handleTraverse(callback)
update?.handleTraverse(callback)
body.handleTraverse(callback)
}
override fun renderString() = buildString {
@@ -21,10 +21,10 @@ interface UIfExpression : UExpression {
val elseBranch: UExpression?
val isTernary: Boolean
override fun traverse(handler: UastHandler) {
condition.handleTraverse(handler)
thenBranch?.handleTraverse(handler)
elseBranch?.handleTraverse(handler)
override fun traverse(callback: UastCallback) {
condition.handleTraverse(callback)
thenBranch?.handleTraverse(callback)
elseBranch?.handleTraverse(callback)
}
override fun logString() = log("UIfExpression", condition, thenBranch, elseBranch)
@@ -19,9 +19,9 @@ interface USwitchExpression : UExpression {
val expression: UExpression?
val body: UExpression
override fun traverse(handler: UastHandler) {
expression?.handleTraverse(handler)
body.handleTraverse(handler)
override fun traverse(callback: UastCallback) {
expression?.handleTraverse(callback)
body.handleTraverse(callback)
}
override fun logString() = log("USwitchExpression", expression, body)
@@ -37,8 +37,8 @@ interface USwitchClauseExpression : UExpression
interface UExpressionSwitchClauseExpression : USwitchClauseExpression {
val caseValue: UExpression
override fun traverse(handler: UastHandler) {
caseValue.handleTraverse(handler)
override fun traverse(callback: UastCallback) {
caseValue.handleTraverse(callback)
}
override fun renderString() = caseValue.renderString() + " -> "
@@ -46,7 +46,7 @@ interface UExpressionSwitchClauseExpression : USwitchClauseExpression {
}
interface UDefaultSwitchClauseExpression : USwitchClauseExpression {
override fun traverse(handler: UastHandler) {}
override fun traverse(callback: UastCallback) {}
override fun logString() = "UDefaultSwitchClause"
override fun renderString() = "else -> "
}
@@ -21,10 +21,10 @@ interface UTryExpression : UExpression {
val catchClauses: List<UCatchClause>
val finallyClause: UExpression?
override fun traverse(handler: UastHandler) {
tryClause.handleTraverse(handler)
catchClauses.handleTraverseList(handler)
finallyClause?.handleTraverse(handler)
override fun traverse(callback: UastCallback) {
tryClause.handleTraverse(callback)
catchClauses.handleTraverseList(callback)
finallyClause?.handleTraverse(callback)
}
override fun renderString() = buildString {
@@ -45,8 +45,8 @@ interface UCatchClause : UElement {
val parameters: List<UVariable>
val types: List<UType>
override fun traverse(handler: UastHandler) {
body.handleTraverse(handler)
override fun traverse(callback: UastCallback) {
body.handleTraverse(callback)
}
override fun logString() = log("UCatchClause", body)
@@ -18,9 +18,9 @@ package org.jetbrains.uast
interface UWhileExpression : ULoopExpression {
val condition: UExpression
override fun traverse(handler: UastHandler) {
condition.handleTraverse(handler)
body.handleTraverse(handler)
override fun traverse(callback: UastCallback) {
condition.handleTraverse(callback)
body.handleTraverse(callback)
}
override fun renderString() = buildString {
@@ -51,10 +51,10 @@ interface UClass : UDeclaration, UFqNamed, UModifierOwner, UAnnotated {
fun getSuperClass(context: UastContext): UClass?
override fun traverse(handler: UastHandler) {
nameElement?.handleTraverse(handler)
declarations.handleTraverseList(handler)
annotations.handleTraverseList(handler)
override fun traverse(callback: UastCallback) {
nameElement?.handleTraverse(callback)
declarations.handleTraverseList(callback)
annotations.handleTraverseList(callback)
}
override fun renderString(): String {
@@ -30,13 +30,13 @@ interface UFunction : UDeclaration, UModifierOwner, UAnnotated {
fun getSuperFunctions(context: UastContext): List<UFunction>
override fun traverse(handler: UastHandler) {
nameElement?.handleTraverse(handler)
valueParameters.handleTraverseList(handler)
body.handleTraverse(handler)
annotations.handleTraverseList(handler)
typeParameters.handleTraverseList(handler)
returnType?.handleTraverse(handler)
override fun traverse(callback: UastCallback) {
nameElement?.handleTraverse(callback)
valueParameters.handleTraverseList(callback)
body.handleTraverse(callback)
annotations.handleTraverseList(callback)
typeParameters.handleTraverseList(callback)
returnType?.handleTraverse(callback)
}
override fun renderString(): String {
@@ -22,7 +22,7 @@ interface UImportStatement : UElement {
val isStarImport: Boolean
val kind: UastImportKind
override fun traverse(handler: UastHandler) {}
override fun traverse(callback: UastCallback) {}
override fun logString() = "UImport ($fqNameToImport)"
override fun renderString() = "import ${fqNameToImport ?: ""}"
}
@@ -20,11 +20,11 @@ interface UVariable : UDeclaration, UModifierOwner, UAnnotated {
val kind: UastVariableKind
val type: UType
override fun traverse(handler: UastHandler) {
nameElement?.handleTraverse(handler)
initializer?.handleTraverse(handler)
annotations.handleTraverseList(handler)
type.handleTraverse(handler)
override fun traverse(callback: UastCallback) {
nameElement?.handleTraverse(callback)
initializer?.handleTraverse(callback)
annotations.handleTraverseList(callback)
type.handleTraverse(callback)
}
override fun renderString(): String {
@@ -19,9 +19,9 @@ interface UArrayAccessExpression : UExpression {
val receiver: UExpression
val indices: List<UExpression>
override fun traverse(handler: UastHandler) {
receiver.handleTraverse(handler)
indices.handleTraverseList(handler)
override fun traverse(callback: UastCallback) {
receiver.handleTraverse(callback)
indices.handleTraverseList(callback)
}
override fun logString() = log("UArrayAccessExpression", receiver, indices)
@@ -20,9 +20,9 @@ interface UAssignmentExpression : UExpression {
val operator: String
val value: UExpression
override fun traverse(handler: UastHandler) {
reference.handleTraverse(handler)
value.handleTraverse(handler)
override fun traverse(callback: UastCallback) {
reference.handleTraverse(callback)
value.handleTraverse(callback)
}
override fun logString() = "UAssignmentExpression ($operator)\n" + reference.logString().withMargin + "\n" + value.logString().withMargin
@@ -20,9 +20,9 @@ interface UBinaryExpression : UExpression {
val operator: UastBinaryOperator
val rightOperand: UExpression
override fun traverse(handler: UastHandler) {
leftOperand.handleTraverse(handler)
rightOperand.handleTraverse(handler)
override fun traverse(callback: UastCallback) {
leftOperand.handleTraverse(callback)
rightOperand.handleTraverse(callback)
}
override fun logString() =
@@ -23,8 +23,8 @@ interface UBinaryExpressionWithType : UExpression {
override fun logString() = log("UBinaryExpressionWithType (${getExpressionType()?.name}, ${operationKind.name})", operand)
override fun renderString() = "(${operand.renderString()}) ${operationKind.name} ${getExpressionType()?.name}"
override fun traverse(handler: UastHandler) {
operand.handleTraverse(handler)
type.handleTraverse(handler)
override fun traverse(callback: UastCallback) {
operand.handleTraverse(callback)
type.handleTraverse(callback)
}
}
@@ -18,7 +18,7 @@ package org.jetbrains.uast
interface UBlockExpression : UExpression {
val expressions: List<UExpression>
override fun traverse(handler: UastHandler) = expressions.handleTraverseList(handler)
override fun traverse(callback: UastCallback) = expressions.handleTraverseList(callback)
override fun logString() = log("UBlockExpression", expressions)
override fun renderString() = buildString {
@@ -36,12 +36,12 @@ interface UCallExpression : UExpression, UResolvable {
override fun resolve(context: UastContext): UFunction?
override fun resolveOrEmpty(context: UastContext): UFunction = resolve(context) ?: UFunctionNotResolved
override fun traverse(handler: UastHandler) {
functionReference?.handleTraverse(handler)
classReference?.handleTraverse(handler)
functionNameElement?.handleTraverse(handler)
valueArguments.handleTraverseList(handler)
typeArguments.handleTraverseList(handler)
override fun traverse(callback: UastCallback) {
functionReference?.handleTraverse(callback)
classReference?.handleTraverse(callback)
functionNameElement?.handleTraverse(callback)
valueArguments.handleTraverseList(callback)
typeArguments.handleTraverseList(callback)
}
override fun logString() = log("UFunctionCallExpression ($kind, argCount = $valueArgumentCount)", functionReference, valueArguments)
@@ -18,8 +18,8 @@ package org.jetbrains.uast
interface UCallableReferenceExpression : UExpression {
val qualifierType: UType
override fun traverse(handler: UastHandler) {
qualifierType.handleTraverse(handler)
override fun traverse(callback: UastCallback) {
qualifierType.handleTraverse(callback)
}
override fun logString() = "UCallableReferenceExpression"
@@ -22,7 +22,7 @@ interface UDeclarationsExpression : UExpression {
get() = declarations.filterIsInstance<UVariable>()
override fun evaluate() = null
override fun traverse(handler: UastHandler) = declarations.handleTraverseList(handler)
override fun traverse(callback: UastCallback) = declarations.handleTraverseList(callback)
override fun renderString() = declarations.joinToString("\n") { it.renderString() }
override fun logString() = log("UDeclarationsExpression", declarations)
@@ -19,7 +19,7 @@ interface UExpressionList : UExpression {
val expressions: List<UExpression>
override fun evaluate(): Any? = null
override fun traverse(handler: UastHandler) = expressions.forEach { it.handleTraverse(handler) }
override fun traverse(callback: UastCallback) = expressions.forEach { it.handleTraverse(callback) }
override fun logString() = log("UExpressionList", expressions)
override fun renderString() = log("", expressions)
@@ -19,9 +19,9 @@ interface UForEachExpression : ULoopExpression {
val variableName: String?
val iteratedValue: UExpression
override fun traverse(handler: UastHandler) {
iteratedValue.handleTraverse(handler)
body.handleTraverse(handler)
override fun traverse(callback: UastCallback) {
iteratedValue.handleTraverse(callback)
body.handleTraverse(callback)
}
override fun renderString() = buildString {
@@ -19,8 +19,8 @@ interface ULabeledExpression : UExpression {
val label: String
val expression: UExpression
override fun traverse(handler: UastHandler) {
expression.handleTraverse(handler)
override fun traverse(callback: UastCallback) {
expression.handleTraverse(callback)
}
override fun logString() = log("ULabeledExpression ($label)", expression)
@@ -19,9 +19,9 @@ interface ULambdaExpression : UExpression {
val valueParameters: List<UVariable>
val body: UExpression
override fun traverse(handler: UastHandler) {
valueParameters.handleTraverseList(handler)
body.handleTraverse(handler)
override fun traverse(callback: UastCallback) {
valueParameters.handleTraverseList(callback)
body.handleTraverse(callback)
}
override fun logString() = log("ULambdaExpression", valueParameters, body)
@@ -28,7 +28,7 @@ interface ULiteralExpression : UExpression {
val isBoolean: Boolean
get() = evaluate() is Boolean
override fun traverse(handler: UastHandler) {}
override fun traverse(callback: UastCallback) {}
override fun logString() = "ULiteralExpression ($text)"
override fun renderString() = text
}
@@ -21,8 +21,8 @@ class UNamedExpression(
): UExpression, UNamed {
lateinit var expression: UExpression
override fun traverse(handler: UastHandler) {
expression.handleTraverse(handler)
override fun traverse(callback: UastCallback) {
expression.handleTraverse(callback)
}
override fun logString() = log("UNamedExpression ($name)", expression)
@@ -18,8 +18,8 @@ package org.jetbrains.uast
interface UObjectLiteralExpression : UExpression {
val declaration: UClass
override fun traverse(handler: UastHandler) {
declaration.handleTraverse(handler)
override fun traverse(callback: UastCallback) {
declaration.handleTraverse(callback)
}
override fun logString() = log("UObjectLiteralExpression", declaration)
@@ -18,8 +18,8 @@ package org.jetbrains.uast
interface UParenthesizedExpression : UExpression {
val expression: UExpression
override fun traverse(handler: UastHandler) {
expression.handleTraverse(handler)
override fun traverse(callback: UastCallback) {
expression.handleTraverse(callback)
}
override fun logString() = log("UParenthesizedExpression", expression)
@@ -24,9 +24,9 @@ interface UQualifiedExpression : UExpression, UResolvable {
override fun renderString() = receiver.renderString() + accessType.name + selector.renderString()
override fun traverse(handler: UastHandler) {
receiver.handleTraverse(handler)
selector.handleTraverse(handler)
override fun traverse(callback: UastCallback) {
receiver.handleTraverse(callback)
selector.handleTraverse(callback)
}
override fun logString() = log("UQualifiedExpression", receiver, selector)
@@ -18,5 +18,5 @@ package org.jetbrains.uast
interface USuperExpression : UExpression {
override fun logString() = "USuperExpression"
override fun renderString() = "super"
override fun traverse(handler: UastHandler) {}
override fun traverse(callback: UastCallback) {}
}
@@ -18,5 +18,5 @@ package org.jetbrains.uast
interface UThisExpression : UExpression {
override fun logString() = "UThisExpression"
override fun renderString() = "this"
override fun traverse(handler: UastHandler) {}
override fun traverse(callback: UastCallback) {}
}
@@ -21,8 +21,8 @@ interface UUnaryExpression : UExpression {
val operand: UExpression
val operator: UastOperator
override fun traverse(handler: UastHandler) {
operand.handleTraverse(handler)
override fun traverse(callback: UastCallback) {
operand.handleTraverse(callback)
}
}
@@ -19,7 +19,7 @@ package org.jetbrains.kotlin.uast
import org.jetbrains.kotlin.psi.KtAnnotation
import org.jetbrains.uast.UAnnotation
import org.jetbrains.uast.UElement
import org.jetbrains.uast.UastHandler
import org.jetbrains.uast.UastCallback
import org.jetbrains.uast.handleTraverseList
import org.jetbrains.uast.psi.PsiElementBacked
@@ -31,7 +31,7 @@ class KotlinUAnnotationList(
override fun logString() = "KotlinUAnnotationList"
override fun renderString() = annotations.joinToString(" ") { it.renderString() }
override fun traverse(handler: UastHandler) {
annotations.handleTraverseList(handler)
override fun traverse(callback: UastCallback) {
annotations.handleTraverseList(callback)
}
}
@@ -101,7 +101,7 @@ class KotlinUSwitchEntry(
override fun logString() = log("KotlinUSwitchEntry", expression)
override fun traverse(handler: UastHandler) {
expression.handleTraverse(handler)
override fun traverse(callback: UastCallback) {
expression.handleTraverse(callback)
}
}
@@ -20,13 +20,13 @@ import org.jetbrains.kotlin.psi.KtExpression
import org.jetbrains.uast.NoEvaluate
import org.jetbrains.uast.UElement
import org.jetbrains.uast.UExpression
import org.jetbrains.uast.UastHandler
import org.jetbrains.uast.UastCallback
import org.jetbrains.uast.psi.PsiElementBacked
class UnknownKotlinExpression(
override val psi: KtExpression,
override val parent: UElement
) : KotlinAbstractUElement(), UExpression, PsiElementBacked, NoEvaluate {
override fun traverse(handler: UastHandler) {}
override fun traverse(callback: UastCallback) {}
override fun logString() = "[!] UnknownKotlinExpression ($psi)"
}
@@ -29,7 +29,7 @@ import org.jetbrains.uast.check.AndroidUastAdditionalChecker
import org.jetbrains.uast.psi.PsiElementBacked
class PropertyAsCallAndroidUastAdditionalChecker : AndroidUastAdditionalChecker {
override fun invoke(element: UElement, handler: UastHandler, context: UastContext) {
override fun invoke(element: UElement, callback: UastCallback, context: UastContext) {
val expr = element as? KotlinUSimpleReferenceExpression ?: return
if (expr is KotlinNameUSimpleReferenceExpression) return
@@ -86,7 +86,7 @@ class PropertyAsCallAndroidUastAdditionalChecker : AndroidUastAdditionalChecker
}
}
handler(callExpression)
callback(callExpression)
}
private tailrec fun findAssignment(prev: PsiElement?, element: PsiElement?): KtBinaryExpression? = when (element) {