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