From 6c40fda7b74880b09fe225b31bd4db27a18cc80f Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Fri, 18 Mar 2016 21:45:58 +0300 Subject: [PATCH] Support equals() on UElements (comparation by psi) --- .../uast/java/JavaAbstractUElement.kt | 30 +++++++++++++++++++ .../JavaUDoWhileExpression.kt | 2 +- .../JavaUForEachExpression.kt | 2 +- .../controlStructures/JavaUForExpression.kt | 2 +- .../controlStructures/JavaUIfExpression.kt | 2 +- .../JavaUSpecialExpressionList.kt | 2 +- .../JavaUSwitchExpression.kt | 4 +-- .../JavaUTernaryIfExpression.kt | 2 +- .../controlStructures/JavaUTryExpression.kt | 4 +-- .../controlStructures/JavaUWhileExpression.kt | 2 +- .../JavaClassInitializerUFunction.kt | 2 +- .../JavaParameterUTypeReference.kt | 2 +- .../uast/java/declarations/JavaUAnnotation.kt | 2 +- .../uast/java/declarations/JavaUClass.kt | 6 ++-- .../uast/java/declarations/JavaUFile.kt | 2 +- .../uast/java/declarations/JavaUFunction.kt | 2 +- .../java/declarations/JavaUImportStatement.kt | 2 +- .../JavaUStaticImportStatement.kt | 2 +- .../uast/java/declarations/JavaUType.kt | 2 +- .../uast/java/declarations/JavaUVariable.kt | 2 +- .../JavaValueParameterUVariable.kt | 2 +- .../JavaCombinedUBinaryExpression.kt | 2 +- .../expressions/JavaUArrayAccessExpression.kt | 2 +- .../expressions/JavaUAssignmentExpression.kt | 2 +- .../java/expressions/JavaUBinaryExpression.kt | 2 +- .../java/expressions/JavaUBlockExpression.kt | 2 +- .../JavaUCallableReferenceExpression.kt | 2 +- .../JavaUClassLiteralExpression.kt | 2 +- .../expressions/JavaUCodeBlockExpression.kt | 2 +- .../JavaUCompositeQualifiedExpression.kt | 2 +- .../JavaUInstanceCheckExpression.kt | 2 +- .../expressions/JavaULabeledExpression.kt | 2 +- .../java/expressions/JavaULambdaExpression.kt | 2 +- .../expressions/JavaULiteralExpression.kt | 2 +- .../JavaUObjectLiteralExpression.kt | 2 +- .../JavaUParenthesizedExpression.kt | 2 +- .../expressions/JavaUPostfixExpression.kt | 2 +- .../java/expressions/JavaUPrefixExpression.kt | 2 +- .../expressions/JavaUQualifiedExpression.kt | 2 +- .../JavaUSimpleReferenceExpression.kt | 4 +-- .../java/expressions/JavaUSuperExpression.kt | 2 +- .../java/expressions/JavaUThisExpression.kt | 2 +- .../expressions/JavaUTypeCastExpression.kt | 2 +- .../jetbrains/uast/psi/PsiElementBacked.kt | 2 +- .../kotlin/uast/KotlinAbstractUElement.kt | 30 +++++++++++++++++++ ...siElementStub.kt => KotlinDumbUElement.kt} | 2 +- .../KotlinParameterUTypeReference.kt | 2 +- .../uast/declarations/KotlinUAnnotation.kt | 2 +- .../declarations/KotlinUAnnotationList.kt | 2 +- .../kotlin/uast/declarations/KotlinUClass.kt | 2 +- .../kotlin/uast/declarations/KotlinUFile.kt | 2 +- .../declarations/KotlinUImportStatement.kt | 2 +- .../kotlin/uast/declarations/KotlinUType.kt | 2 +- .../uast/declarations/KotlinUVariable.kt | 6 ++-- .../uast/declarations/kotlinUFunctions.kt | 8 ++--- .../KotlinStringTemplateUBinaryExpression.kt | 2 +- .../KotlinUArrayAccessExpression.kt | 2 +- .../expressions/KotlinUBinaryExpression.kt | 4 +-- .../KotlinUBinaryExpressionWithType.kt | 4 +-- .../expressions/KotlinUBlockExpression.kt | 2 +- .../uast/expressions/KotlinUCatchClause.kt | 2 +- .../KotlinUDeclarationsExpression.kt | 4 ++- .../expressions/KotlinUDoWhileExpression.kt | 2 +- .../expressions/KotlinUForEachExpression.kt | 2 +- .../KotlinUFunctionCallExpression.kt | 2 +- .../uast/expressions/KotlinUIfExpression.kt | 2 +- .../expressions/KotlinULambdaExpression.kt | 2 +- .../expressions/KotlinULiteralExpression.kt | 4 +-- .../KotlinUParenthesizedExpression.kt | 2 +- .../expressions/KotlinUPostfixExpression.kt | 3 +- .../expressions/KotlinUPrefixExpression.kt | 3 +- .../expressions/KotlinUQualifiedExpression.kt | 4 +-- .../KotlinUSafeQualifiedExpression.kt | 3 +- .../KotlinUSimpleReferenceExpression.kt | 6 ++-- .../KotlinUSpecialExpressionList.kt | 2 +- .../expressions/KotlinUSuperExpression.kt | 2 +- .../expressions/KotlinUSwitchExpression.kt | 4 +-- .../uast/expressions/KotlinUThisExpression.kt | 3 +- .../uast/expressions/KotlinUTryExpression.kt | 2 +- .../expressions/KotlinUTypeCheckExpression.kt | 2 +- .../expressions/KotlinUWhileExpression.kt | 2 +- .../expressions/UnknownKotlinExpression.kt | 2 +- 82 files changed, 159 insertions(+), 101 deletions(-) create mode 100644 plugins/uast-java/src/org/jetbrains/uast/java/JavaAbstractUElement.kt create mode 100644 plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/KotlinAbstractUElement.kt rename plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/{KotlinPsiElementStub.kt => KotlinDumbUElement.kt} (93%) diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/JavaAbstractUElement.kt b/plugins/uast-java/src/org/jetbrains/uast/java/JavaAbstractUElement.kt new file mode 100644 index 00000000000..d2c630bc22c --- /dev/null +++ b/plugins/uast-java/src/org/jetbrains/uast/java/JavaAbstractUElement.kt @@ -0,0 +1,30 @@ +/* + * Copyright 2010-2016 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.uast.java + +import org.jetbrains.uast.UElement +import org.jetbrains.uast.psi.PsiElementBacked + +abstract class JavaAbstractUElement : UElement { + override fun equals(other: Any?): Boolean { + if (this !is PsiElementBacked || other !is PsiElementBacked) { + return this === other + } + + return this.psi == other.psi + } +} \ No newline at end of file diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUDoWhileExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUDoWhileExpression.kt index 9c542dac970..6b21e4b9315 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUDoWhileExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUDoWhileExpression.kt @@ -24,7 +24,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUDoWhileExpression( override val psi: PsiDoWhileStatement, override val parent: UElement -) : UDoWhileExpression, PsiElementBacked, NoEvaluate { +) : JavaAbstractUElement(), UDoWhileExpression, PsiElementBacked, NoEvaluate { override val condition by lz { JavaConverter.convertOrEmpty(psi.condition, this) } override val body by lz { JavaConverter.convertOrEmpty(psi.body, this) } } \ No newline at end of file diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUForEachExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUForEachExpression.kt index 9369fb62307..01c434b175e 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUForEachExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUForEachExpression.kt @@ -24,7 +24,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUForEachExpression( override val psi: PsiForeachStatement, override val parent: UElement -) : UForEachExpression, PsiElementBacked, NoEvaluate { +) : JavaAbstractUElement(), UForEachExpression, PsiElementBacked, NoEvaluate { override val variableName: String? get() = psi.iterationParameter.name diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUForExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUForExpression.kt index f8c25d295be..c4cd37df320 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUForExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUForExpression.kt @@ -24,7 +24,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUForExpression( override val psi: PsiForStatement, override val parent: UElement -) : UForExpression, PsiElementBacked, NoEvaluate { +) : JavaAbstractUElement(), UForExpression, PsiElementBacked, NoEvaluate { override val declaration by lz { psi.initialization?.let { JavaConverter.convert(it, this) } } override val condition by lz { psi.condition?.let { JavaConverter.convert(it, this) } } override val update by lz { psi.update?.let { JavaConverter.convert(it, this) } } diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUIfExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUIfExpression.kt index 000e6fe46e4..75950e28f9c 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUIfExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUIfExpression.kt @@ -24,7 +24,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUIfExpression( override val psi: PsiIfStatement, override val parent: UElement -) : UIfExpression, PsiElementBacked, NoEvaluate { +) : JavaAbstractUElement(), UIfExpression, PsiElementBacked, NoEvaluate { override val condition by lz { JavaConverter.convertOrEmpty(psi.condition, this) } override val thenBranch by lz { JavaConverter.convertOrEmpty(psi.thenBranch, this) } override val elseBranch by lz { JavaConverter.convertOrEmpty(psi.elseBranch, this) } diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUSpecialExpressionList.kt b/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUSpecialExpressionList.kt index 7b65d0e8f12..b75b680c5f6 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUSpecialExpressionList.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUSpecialExpressionList.kt @@ -23,7 +23,7 @@ open class JavaUSpecialExpressionList( override val psi: PsiElement, override val kind: UastSpecialExpressionKind, // original element override val parent: UElement -) : USpecialExpressionList, PsiElementBacked { +) : JavaAbstractUElement(), USpecialExpressionList, PsiElementBacked { class Empty(psi: PsiElement, expressionType: UastSpecialExpressionKind, parent: UElement) : JavaUSpecialExpressionList(psi, expressionType, parent) { init { expressions = emptyList() } diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUSwitchExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUSwitchExpression.kt index 5d646acffb5..930cc0bba08 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUSwitchExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUSwitchExpression.kt @@ -26,7 +26,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUSwitchExpression( override val psi: PsiSwitchStatement, override val parent: UElement -) : USwitchExpression, PsiElementBacked, NoEvaluate { +) : JavaAbstractUElement(), USwitchExpression, PsiElementBacked, NoEvaluate { override val expression by lz { JavaConverter.convertOrEmpty(psi.expression, this) } override val body by lz { JavaConverter.convertOrEmpty(psi.body, this) } } @@ -34,6 +34,6 @@ class JavaUSwitchExpression( class JavaUExpressionSwitchClauseExpression( override val psi: PsiSwitchLabelStatement, override val parent: UElement -) : UExpressionSwitchClauseExpression, PsiElementBacked, NoEvaluate { +) : JavaAbstractUElement(), UExpressionSwitchClauseExpression, PsiElementBacked, NoEvaluate { override val caseValue by lz { JavaConverter.convertOrEmpty(psi.caseValue, this) } } \ No newline at end of file diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUTernaryIfExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUTernaryIfExpression.kt index bddd23740e8..327f2cca15f 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUTernaryIfExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUTernaryIfExpression.kt @@ -23,7 +23,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUTernaryIfExpression( override val psi: PsiConditionalExpression, override val parent: UElement -) : UIfExpression, PsiElementBacked, JavaTypeHelper, JavaEvaluateHelper { +) : JavaAbstractUElement(), UIfExpression, PsiElementBacked, JavaTypeHelper, JavaEvaluateHelper { override val condition by lz { JavaConverter.convert(psi.condition, this) } override val thenBranch by lz { JavaConverter.convertOrEmpty(psi.thenExpression, this) } override val elseBranch by lz { JavaConverter.convertOrEmpty(psi.elseExpression, this) } diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUTryExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUTryExpression.kt index 6bce93015f3..ca04decfd78 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUTryExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUTryExpression.kt @@ -26,7 +26,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUTryExpression( override val psi: PsiTryStatement, override val parent: UElement -) : UTryExpression, PsiElementBacked, NoEvaluate { +) : JavaAbstractUElement(), UTryExpression, PsiElementBacked, NoEvaluate { override val tryClause by lz { JavaConverter.convertOrEmpty(psi.tryBlock, this) } override val catchClauses by lz { psi.catchSections.map { JavaUCatchClause(it, this) } } override val finallyClause by lz { psi.finallyBlock?.let { JavaConverter.convert(it, this) } } @@ -35,7 +35,7 @@ class JavaUTryExpression( class JavaUCatchClause( override val psi: PsiCatchSection, override val parent: UElement -) : UCatchClause, PsiElementBacked { +) : JavaAbstractUElement(), UCatchClause, PsiElementBacked { override val body by lz { JavaConverter.convertOrEmpty(psi.catchBlock, this) } override val parameters by lz { psi.parameter?.let { listOf(JavaConverter.convert(it, this)) } ?: emptyList() } override val types by lz { listOf(JavaConverter.convert(psi.catchType, this)) } diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUWhileExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUWhileExpression.kt index 947e7a0d195..cb7f4b02987 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUWhileExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/controlStructures/JavaUWhileExpression.kt @@ -24,7 +24,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUWhileExpression( override val psi: PsiWhileStatement, override val parent: UElement -) : UWhileExpression, PsiElementBacked, NoEvaluate { +) : JavaAbstractUElement(), UWhileExpression, PsiElementBacked, NoEvaluate { override val condition by lz { JavaConverter.convertOrEmpty(psi.condition, this) } override val body by lz { JavaConverter.convertOrEmpty(psi.body, this) } } \ No newline at end of file diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaClassInitializerUFunction.kt b/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaClassInitializerUFunction.kt index 67e867b5614..3303fc47b6c 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaClassInitializerUFunction.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaClassInitializerUFunction.kt @@ -22,7 +22,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaClassInitializerUFunction( override val psi: PsiClassInitializer, override val parent: UElement -) : UFunction, PsiElementBacked, NoAnnotations, NoModifiers { +) : JavaAbstractUElement(), UFunction, PsiElementBacked, NoAnnotations, NoModifiers { override val kind: UastFunctionKind.UastInitializerKind get() = JavaFunctionKinds.STATIC_INITIALIZER diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaParameterUTypeReference.kt b/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaParameterUTypeReference.kt index 62fefa58539..32c69094d24 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaParameterUTypeReference.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaParameterUTypeReference.kt @@ -25,7 +25,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaParameterUTypeReference( override val psi: PsiTypeParameter, override val parent: UElement -) : UTypeReference, PsiElementBacked { +) : JavaAbstractUElement(), UTypeReference, PsiElementBacked { override val name: String get() = psi.name.orAnonymous() diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUAnnotation.kt b/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUAnnotation.kt index f6422a82c8e..1a10b4054cb 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUAnnotation.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUAnnotation.kt @@ -25,7 +25,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUAnnotation( override val psi: PsiAnnotation, override val parent: UElement? -) : UAnnotation, PsiElementBacked { +) : JavaAbstractUElement(), UAnnotation, PsiElementBacked { override val name: String get() = psi.nameReferenceElement?.referenceName.orAnonymous() diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUClass.kt b/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUClass.kt index 3ca2cc02428..219a7b90089 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUClass.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUClass.kt @@ -26,7 +26,7 @@ class JavaUClass( override val psi: PsiClass, override val parent: UElement?, val newExpression: PsiNewExpression? = null -) : UClass, PsiElementBacked { +) : JavaAbstractUElement(), UClass, PsiElementBacked { override val name: String get() = psi.name.orAnonymous() @@ -104,7 +104,7 @@ private class JavaUAnonymousClassConstructor( override val psi: PsiAnonymousClass, val newExpression: PsiNewExpression, override val parent: UElement -) : UFunction, PsiElementBacked, NoAnnotations, NoModifiers { +) : JavaAbstractUElement(), UFunction, PsiElementBacked, NoAnnotations, NoModifiers { override val kind = UastFunctionKind.CONSTRUCTOR override val valueParameterCount by lz { newExpression.argumentList?.expressions?.size ?: 0 } @@ -145,7 +145,7 @@ private class JavaUAnonymousClassConstructorParameter( val psi: PsiExpressionList, val index: Int, override val parent: UElement -) : UVariable, NoAnnotations, NoModifiers { +) : JavaAbstractUElement(), UVariable, NoAnnotations, NoModifiers { override val initializer by lz { JavaConverter.convert(psi.expressions[index], this) } override val kind: UastVariableKind diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUFile.kt b/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUFile.kt index 076cb2191ee..8442897c753 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUFile.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUFile.kt @@ -20,7 +20,7 @@ import org.jetbrains.uast.UFile import org.jetbrains.uast.UImportStatement import org.jetbrains.uast.psi.PsiElementBacked -class JavaUFile(override val psi: PsiJavaFile): UFile, PsiElementBacked { +class JavaUFile(override val psi: PsiJavaFile): JavaAbstractUElement(), UFile, PsiElementBacked { override val packageFqName by lz { psi.packageName.let { if (it.isNotBlank()) it else null } } override val importStatements: List by lz { diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUFunction.kt b/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUFunction.kt index a28d17dd90c..040b1cf8f30 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUFunction.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUFunction.kt @@ -22,7 +22,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUFunction( override val psi: PsiMethod, override val parent: UElement -) : UFunction, PsiElementBacked { +) : JavaAbstractUElement(), UFunction, PsiElementBacked { override val kind: UastFunctionKind get() = if (psi.isConstructor) UastFunctionKind.CONSTRUCTOR else UastFunctionKind.FUNCTION diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUImportStatement.kt b/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUImportStatement.kt index 9a5ef97bb3a..21a16dd6be0 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUImportStatement.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUImportStatement.kt @@ -23,7 +23,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUImportStatement( override val psi: PsiImportStatement, override val parent: UElement -) : UImportStatement, PsiElementBacked { +) : JavaAbstractUElement(), UImportStatement, PsiElementBacked { override val nameToImport: String? get() = psi.qualifiedName diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUStaticImportStatement.kt b/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUStaticImportStatement.kt index 5839c56c2fd..25e94eac2b1 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUStaticImportStatement.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUStaticImportStatement.kt @@ -23,7 +23,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUStaticImportStatement( override val psi: PsiImportStaticStatement, override val parent: UElement -) : UImportStatement, PsiElementBacked { +) : JavaAbstractUElement(), UImportStatement, PsiElementBacked { override val nameToImport: String? get() = psi.referenceName diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUType.kt b/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUType.kt index 0e39fa333cf..830dc346dfd 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUType.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUType.kt @@ -25,7 +25,7 @@ import org.jetbrains.uast.UastContext class JavaUType( val psi: PsiType?, override val parent: UElement -) : UType { +) : JavaAbstractUElement(), UType { override val name: String get() = when (psi) { is PsiClassType -> psi.className.substringAfterLast('.') diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUVariable.kt b/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUVariable.kt index 8bb3e2758cf..0d7f7f9cc05 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUVariable.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaUVariable.kt @@ -26,7 +26,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUVariable( override val psi: PsiVariable, override val parent: UElement -) : UVariable, PsiElementBacked { +) : JavaAbstractUElement(), UVariable, PsiElementBacked { override val name: String get() = psi.name.orAnonymous() diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaValueParameterUVariable.kt b/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaValueParameterUVariable.kt index f54a1ac7025..ac68fbf9361 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaValueParameterUVariable.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/declarations/JavaValueParameterUVariable.kt @@ -22,7 +22,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaValueParameterUVariable( override val psi: PsiParameter, override val parent: UElement -) : UVariable, PsiElementBacked, NoModifiers { +) : JavaAbstractUElement(), UVariable, PsiElementBacked, NoModifiers { override val name: String get() = psi.name.orAnonymous() diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaCombinedUBinaryExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaCombinedUBinaryExpression.kt index 4795658f3a7..bf04e8e1286 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaCombinedUBinaryExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaCombinedUBinaryExpression.kt @@ -24,7 +24,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaCombinedUBinaryExpression( override val psi: PsiPolyadicExpression, override val parent: UElement -) : UBinaryExpression, PsiElementBacked, JavaTypeHelper, JavaEvaluateHelper { +) : JavaAbstractUElement(), UBinaryExpression, PsiElementBacked, JavaTypeHelper, JavaEvaluateHelper { override lateinit var leftOperand: UExpression override lateinit var rightOperand: UExpression diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUArrayAccessExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUArrayAccessExpression.kt index 147e1669e1b..968a24f5dbd 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUArrayAccessExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUArrayAccessExpression.kt @@ -24,7 +24,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUArrayAccessExpression( override val psi: PsiArrayAccessExpression, override val parent: UElement -) : UArrayAccessExpression, PsiElementBacked, JavaTypeHelper, NoEvaluate { +) : JavaAbstractUElement(), UArrayAccessExpression, PsiElementBacked, JavaTypeHelper, NoEvaluate { override val receiver by lz { JavaConverter.convert(psi.arrayExpression, this) } override val indices by lz { singletonListOrEmpty(JavaConverter.convertOrNull(psi.indexExpression, this)) } } \ No newline at end of file diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUAssignmentExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUAssignmentExpression.kt index f83b0428f4b..706b3c25beb 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUAssignmentExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUAssignmentExpression.kt @@ -23,7 +23,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUAssignmentExpression( override val psi: PsiAssignmentExpression, override val parent: UElement -) : UAssignmentExpression, PsiElementBacked, JavaTypeHelper, JavaEvaluateHelper { +) : JavaAbstractUElement(), UAssignmentExpression, PsiElementBacked, JavaTypeHelper, JavaEvaluateHelper { override val reference by lz { JavaConverter.convert(psi.lExpression, this) } override val operator: String diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUBinaryExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUBinaryExpression.kt index 71c7187859a..a03fdfeb87f 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUBinaryExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUBinaryExpression.kt @@ -23,7 +23,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUBinaryExpression( override val psi: PsiBinaryExpression, override val parent: UElement -) : UBinaryExpression, PsiElementBacked, JavaTypeHelper, JavaEvaluateHelper { +) : JavaAbstractUElement(), UBinaryExpression, PsiElementBacked, JavaTypeHelper, JavaEvaluateHelper { override val leftOperand by lz { JavaConverter.convert(psi.lOperand, this) } override val rightOperand by lz { JavaConverter.convertOrEmpty(psi.rOperand, this) } override val operator by lz { psi.operationTokenType.getOperatorType() } diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUBlockExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUBlockExpression.kt index 275f7bccc6a..9b6863cce7d 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUBlockExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUBlockExpression.kt @@ -24,6 +24,6 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUBlockExpression( override val psi: PsiBlockStatement, override val parent: UElement -) : UBlockExpression, PsiElementBacked, JavaTypeHelper, NoEvaluate { +) : JavaAbstractUElement(), UBlockExpression, PsiElementBacked, JavaTypeHelper, NoEvaluate { override val expressions by lz { psi.codeBlock.statements.map { JavaConverter.convert(it, this) } } } \ No newline at end of file diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUCallableReferenceExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUCallableReferenceExpression.kt index bd6aa2dfb31..72462566c7f 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUCallableReferenceExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUCallableReferenceExpression.kt @@ -24,6 +24,6 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUCallableReferenceExpression( override val psi: PsiMethodReferenceExpression, override val parent: UElement -) : UCallableReferenceExpression, PsiElementBacked, JavaTypeHelper, NoEvaluate { +) : JavaAbstractUElement(), UCallableReferenceExpression, PsiElementBacked, JavaTypeHelper, NoEvaluate { override val qualifierType by lz { JavaConverter.convert(psi.qualifierType?.type, this) } } \ No newline at end of file diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUClassLiteralExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUClassLiteralExpression.kt index ca60d815043..83013a2c4d9 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUClassLiteralExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUClassLiteralExpression.kt @@ -24,4 +24,4 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUClassLiteralExpression( override val psi: PsiClassObjectAccessExpression, override val parent: UElement -) : UClassLiteralExpression, PsiElementBacked, JavaTypeHelper, NoEvaluate \ No newline at end of file +) : JavaAbstractUElement(), UClassLiteralExpression, PsiElementBacked, JavaTypeHelper, NoEvaluate \ No newline at end of file diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUCodeBlockExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUCodeBlockExpression.kt index 4f4bea20b7d..3de954b65d0 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUCodeBlockExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUCodeBlockExpression.kt @@ -24,6 +24,6 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUCodeBlockExpression( override val psi: PsiCodeBlock, override val parent: UElement -) : UBlockExpression, PsiElementBacked, JavaTypeHelper, NoEvaluate { +) : JavaAbstractUElement(), UBlockExpression, PsiElementBacked, JavaTypeHelper, NoEvaluate { override val expressions by lz { psi.statements.map { JavaConverter.convert(it, this) } } } \ No newline at end of file diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUCompositeQualifiedExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUCompositeQualifiedExpression.kt index aafa0c65715..eff0a9c8ee9 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUCompositeQualifiedExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUCompositeQualifiedExpression.kt @@ -21,7 +21,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUCompositeQualifiedExpression( override val parent: UElement -) : UQualifiedExpression, PsiElementBacked, NoEvaluate { +) : JavaAbstractUElement(), UQualifiedExpression, PsiElementBacked, NoEvaluate { override lateinit var receiver: UExpression internal set diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUInstanceCheckExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUInstanceCheckExpression.kt index bb6c868e314..0d9377abc44 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUInstanceCheckExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUInstanceCheckExpression.kt @@ -24,7 +24,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUInstanceCheckExpression( override val psi: PsiInstanceOfExpression, override val parent: UElement -) : UBinaryExpressionWithType, PsiElementBacked, JavaTypeHelper, JavaEvaluateHelper { +) : JavaAbstractUElement(), UBinaryExpressionWithType, PsiElementBacked, JavaTypeHelper, JavaEvaluateHelper { override val operand by lz { JavaConverter.convertOrEmpty(psi.operand, this) } override val type by lz { JavaConverter.convert(psi.checkType?.type, this) } diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaULabeledExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaULabeledExpression.kt index 758482e3041..46643328248 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaULabeledExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaULabeledExpression.kt @@ -24,7 +24,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaULabeledExpression( override val psi: PsiLabeledStatement, override val parent: UElement -) : ULabeledExpression, PsiElementBacked, NoEvaluate { +) : JavaAbstractUElement(), ULabeledExpression, PsiElementBacked, NoEvaluate { override val label by lz { psi.labelIdentifier.text } override val expression by lz { JavaConverter.convertOrEmpty(psi.statement, this) } } \ No newline at end of file diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaULambdaExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaULambdaExpression.kt index 477df9b9f17..09a6b4e9c94 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaULambdaExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaULambdaExpression.kt @@ -27,7 +27,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaULambdaExpression( override val psi: PsiLambdaExpression, override val parent: UElement -) : ULambdaExpression, PsiElementBacked, JavaTypeHelper, NoEvaluate { +) : JavaAbstractUElement(), ULambdaExpression, PsiElementBacked, JavaTypeHelper, NoEvaluate { override val valueParameters by lz { psi.parameterList.parameters.map { JavaConverter.convert(it, this) } } override val body by lz { diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaULiteralExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaULiteralExpression.kt index c6173bbf836..96cacb4832c 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaULiteralExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaULiteralExpression.kt @@ -23,7 +23,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaULiteralExpression( override val psi: PsiLiteralExpression, override val parent: UElement -) : ULiteralExpression, PsiElementBacked, JavaTypeHelper { +) : JavaAbstractUElement(), ULiteralExpression, PsiElementBacked, JavaTypeHelper { override val text by lz { psi.text } override fun evaluate() = psi.value override val value by lz { evaluate() } diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUObjectLiteralExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUObjectLiteralExpression.kt index 8d71f6bedc6..9fae0ff21c2 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUObjectLiteralExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUObjectLiteralExpression.kt @@ -24,7 +24,7 @@ import org.jetbrains.uast.UObjectLiteralExpression class JavaUObjectLiteralExpression( override val psi: PsiNewExpression, override val parent: UElement -) : UObjectLiteralExpression, JavaTypeHelper, NoEvaluate { +) : JavaAbstractUElement(), UObjectLiteralExpression, JavaTypeHelper, NoEvaluate { override val declaration by lz { psi.anonymousClass?.let { JavaUClass(it, this, psi) } ?: UClassNotResolved } diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUParenthesizedExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUParenthesizedExpression.kt index 5c9eb4a3f85..8a1a7d7ff08 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUParenthesizedExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUParenthesizedExpression.kt @@ -23,6 +23,6 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUParenthesizedExpression( override val psi: PsiParenthesizedExpression, override val parent: UElement -) : UParenthesizedExpression, PsiElementBacked, JavaTypeHelper, JavaEvaluateHelper { +) : JavaAbstractUElement(), UParenthesizedExpression, PsiElementBacked, JavaTypeHelper, JavaEvaluateHelper { override val expression by lz { JavaConverter.convertOrEmpty(psi.expression, this) } } \ No newline at end of file diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUPostfixExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUPostfixExpression.kt index 070bc41b90a..5d9d2046aa7 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUPostfixExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUPostfixExpression.kt @@ -24,7 +24,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUPostfixExpression( override val psi: PsiPostfixExpression, override val parent: UElement -) : UPostfixExpression, PsiElementBacked, JavaTypeHelper, JavaEvaluateHelper { +) : JavaAbstractUElement(), UPostfixExpression, PsiElementBacked, JavaTypeHelper, JavaEvaluateHelper { override val operand by lz { JavaConverter.convertOrEmpty(psi.operand, this) } override val operator = when (psi.operationSign.text) { diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUPrefixExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUPrefixExpression.kt index e1592ebe542..5b63aa93ad2 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUPrefixExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUPrefixExpression.kt @@ -24,7 +24,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUPrefixExpression( override val psi: PsiPrefixExpression, override val parent: UElement -) : UPrefixExpression, PsiElementBacked, JavaTypeHelper, JavaEvaluateHelper { +) : JavaAbstractUElement(), UPrefixExpression, PsiElementBacked, JavaTypeHelper, JavaEvaluateHelper { override val operand by lz { JavaConverter.convertOrEmpty(psi.operand, this) } override val operator = when (psi.operationSign.text) { diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUQualifiedExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUQualifiedExpression.kt index 75ba5163143..6ae346f879a 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUQualifiedExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUQualifiedExpression.kt @@ -22,7 +22,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUQualifiedExpression( override val psi: PsiReferenceExpression, override val parent: UElement -) : UQualifiedExpression, PsiElementBacked, JavaTypeHelper, NoEvaluate { +) : JavaAbstractUElement(), UQualifiedExpression, PsiElementBacked, JavaTypeHelper, NoEvaluate { override val receiver by lz { JavaConverter.convertOrEmpty(psi.qualifierExpression, this) } override val selector by lz { JavaConverter.convert(psi.referenceNameElement, this) as? UExpression ?: EmptyExpression(this) } diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUSimpleReferenceExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUSimpleReferenceExpression.kt index 10ebcbf76b0..4b3d9abdace 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUSimpleReferenceExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUSimpleReferenceExpression.kt @@ -24,7 +24,7 @@ class JavaUSimpleReferenceExpression( override val psi: PsiElement, override val identifier: String, override val parent: UElement -) : USimpleReferenceExpression, PsiElementBacked, JavaTypeHelper, NoEvaluate { +) : JavaAbstractUElement(), USimpleReferenceExpression, PsiElementBacked, JavaTypeHelper, NoEvaluate { override fun resolve(context: UastContext) = psi.reference?.resolve()?.let { context.convert(it) } as? UDeclaration } @@ -32,7 +32,7 @@ class JavaClassUSimpleReferenceExpression( override val identifier: String, val ref: PsiJavaReference, override val parent: UElement -) : USimpleReferenceExpression, PsiElementBacked, NoEvaluate { +) : JavaAbstractUElement(), USimpleReferenceExpression, PsiElementBacked, NoEvaluate { override val psi: PsiElement? get() = ref.element diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUSuperExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUSuperExpression.kt index 5b83f0a3aca..e52671d0f70 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUSuperExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUSuperExpression.kt @@ -24,4 +24,4 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUSuperExpression( override val psi: PsiSuperExpression, override val parent: UElement -) : USuperExpression, PsiElementBacked, JavaTypeHelper, NoEvaluate \ No newline at end of file +) : JavaAbstractUElement(), USuperExpression, PsiElementBacked, JavaTypeHelper, NoEvaluate \ No newline at end of file diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUThisExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUThisExpression.kt index 763f5968b2f..97765aa16b4 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUThisExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUThisExpression.kt @@ -24,4 +24,4 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUThisExpression( override val psi: PsiThisExpression, override val parent: UElement -) : UThisExpression, PsiElementBacked, JavaTypeHelper, NoEvaluate \ No newline at end of file +) : JavaAbstractUElement(), UThisExpression, PsiElementBacked, JavaTypeHelper, NoEvaluate \ No newline at end of file diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUTypeCastExpression.kt b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUTypeCastExpression.kt index 9cc24f6aa45..22ce4cb15e6 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUTypeCastExpression.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/expressions/JavaUTypeCastExpression.kt @@ -24,7 +24,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class JavaUTypeCastExpression( override val psi: PsiTypeCastExpression, override val parent: UElement -) : UBinaryExpressionWithType, PsiElementBacked, JavaTypeHelper, JavaEvaluateHelper { +) : JavaAbstractUElement(), UBinaryExpressionWithType, PsiElementBacked, JavaTypeHelper, JavaEvaluateHelper { override val operand by lz { JavaConverter.convertOrEmpty(psi.operand, this) } override val type by lz { JavaConverter.convert(psi.castType?.type, this) } diff --git a/plugins/uast-java/src/org/jetbrains/uast/psi/PsiElementBacked.kt b/plugins/uast-java/src/org/jetbrains/uast/psi/PsiElementBacked.kt index 5f355f160e6..c4ded269c07 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/psi/PsiElementBacked.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/psi/PsiElementBacked.kt @@ -19,5 +19,5 @@ package org.jetbrains.uast.psi import com.intellij.psi.PsiElement interface PsiElementBacked { - val psi: com.intellij.psi.PsiElement? + val psi: PsiElement? } \ No newline at end of file diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/KotlinAbstractUElement.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/KotlinAbstractUElement.kt new file mode 100644 index 00000000000..9a4b9c9bd6d --- /dev/null +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/KotlinAbstractUElement.kt @@ -0,0 +1,30 @@ +/* + * Copyright 2010-2016 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.kotlin.uast + +import org.jetbrains.uast.UElement +import org.jetbrains.uast.psi.PsiElementBacked + +abstract class KotlinAbstractUElement : UElement { + override fun equals(other: Any?): Boolean { + if (this !is PsiElementBacked || other !is PsiElementBacked) { + return this === other + } + + return this.psi == other.psi + } +} \ No newline at end of file diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinPsiElementStub.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinDumbUElement.kt similarity index 93% rename from plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinPsiElementStub.kt rename to plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinDumbUElement.kt index cf5768ab486..873169c3242 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinPsiElementStub.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinDumbUElement.kt @@ -24,7 +24,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class KotlinPsiElementStub( override val psi: PsiElement, override val parent: UElement -) : UElement, PsiElementBacked, NoTraverse { +) : KotlinAbstractUElement(), UElement, PsiElementBacked, NoTraverse { override fun logString() = "KotlinPsiElementStub" override fun renderString() = "" } \ No newline at end of file diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinParameterUTypeReference.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinParameterUTypeReference.kt index 823dc45c0a9..1c71b639538 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinParameterUTypeReference.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinParameterUTypeReference.kt @@ -27,7 +27,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class KotlinParameterUTypeReference( override val psi: KtTypeParameter, override val parent: UElement -) : UTypeReference, PsiElementBacked { +) : KotlinAbstractUElement(), UTypeReference, PsiElementBacked { override fun resolve(context: UastContext): UClass? { val descriptor = psi.analyze(BodyResolveMode.PARTIAL)[BindingContext.TYPE_PARAMETER, psi] ?.typeConstructor?.declarationDescriptor as? ClassDescriptor ?: return null diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinUAnnotation.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinUAnnotation.kt index 67460dbc04a..aa80571a4e3 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinUAnnotation.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinUAnnotation.kt @@ -31,7 +31,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class KotlinUAnnotation( override val psi: KtAnnotationEntry, override val parent: UElement -) : UAnnotation, PsiElementBacked { +) : KotlinAbstractUElement(), UAnnotation, PsiElementBacked { override val fqName: String? get() = resolveToDescriptor()?.fqNameSafe?.asString() diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinUAnnotationList.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinUAnnotationList.kt index b89b188f343..4bf8dcfe7c5 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinUAnnotationList.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinUAnnotationList.kt @@ -26,7 +26,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class KotlinUAnnotationList( override val psi: KtAnnotation, override val parent: UElement -) : UElement, PsiElementBacked { +) : KotlinAbstractUElement(), UElement, PsiElementBacked { lateinit var annotations: List override fun logString() = "KotlinUAnnotationList" diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinUClass.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinUClass.kt index 659c5a600fd..5e491ac9a0a 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinUClass.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinUClass.kt @@ -42,7 +42,7 @@ class KotlinUClass( override val psi: KtClassOrObject, override val parent: UElement, override val isAnonymous: Boolean = false -) : UClass, PsiElementBacked { +) : KotlinAbstractUElement(), UClass, PsiElementBacked { override val name: String get() = psi.name.orAnonymous() diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinUFile.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinUFile.kt index 71b8b8ec663..b2e1893b3f3 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinUFile.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinUFile.kt @@ -20,7 +20,7 @@ import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.uast.UFile import org.jetbrains.uast.psi.PsiElementBacked -class KotlinUFile(override val psi: KtFile): UFile, PsiElementBacked { +class KotlinUFile(override val psi: KtFile): KotlinAbstractUElement(), UFile, PsiElementBacked { override val packageFqName by lz { val packageName = psi.packageFqName.asString() if (packageName.isNotBlank()) packageName else null diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinUImportStatement.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinUImportStatement.kt index a788cbc69d2..c99a0e9283f 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinUImportStatement.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinUImportStatement.kt @@ -24,7 +24,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class KotlinUImportStatement( override val psi: KtImportDirective, override val parent: UElement -) : UImportStatement, PsiElementBacked { +) : KotlinAbstractUElement(), UImportStatement, PsiElementBacked { override val nameToImport = psi.importedFqName?.asString() override val isStarImport: Boolean diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinUType.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinUType.kt index 52747fb5973..22f5d541df0 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinUType.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinUType.kt @@ -29,7 +29,7 @@ class KotlinUType( val type: KotlinType, val project: Project, override val parent: UElement? -) : UType { +) : KotlinAbstractUElement(), UType { override val name: String get() = type.toString() diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinUVariable.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinUVariable.kt index b5e5a3a19c7..978b7240f69 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinUVariable.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/KotlinUVariable.kt @@ -28,7 +28,7 @@ import org.jetbrains.uast.psi.PsiElementBacked open class KotlinUVariable( override val psi: KtVariableDeclaration, override val parent: UElement -) : UVariable, PsiElementBacked { +) : KotlinAbstractUElement(), UVariable, PsiElementBacked { override val name: String get() = psi.name.orAnonymous() @@ -71,7 +71,7 @@ class KotlinDestructuredUVariable( class KotlinDestructuringUVariable( override val psi: KtDestructuringDeclaration, override val parent: UElement -) : UVariable, PsiElementBacked { +) : KotlinAbstractUElement(), UVariable, PsiElementBacked { override val name = "var" + psi.text.hashCode() override val initializer by lz { KotlinConverter.convertOrEmpty(psi.initializer, this) } override val kind = UastVariableKind.LOCAL_VARIABLE @@ -86,7 +86,7 @@ class KotlinDestructuringUVariable( class KotlinParameterUVariable( override val psi: KtParameter, override val parent: UElement -) : UVariable, PsiElementBacked { +) : KotlinAbstractUElement(), UVariable, PsiElementBacked { override val name: String get() = psi.name.orAnonymous() diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/kotlinUFunctions.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/kotlinUFunctions.kt index e0dcc6040ba..f9c2d6ba47a 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/kotlinUFunctions.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/declarations/kotlinUFunctions.kt @@ -27,7 +27,7 @@ import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode import org.jetbrains.uast.* import org.jetbrains.uast.psi.PsiElementBacked -abstract class KotlinAbstractUFunction : UFunction, PsiElementBacked { +abstract class KotlinAbstractUFunction : KotlinAbstractUElement(), UFunction, PsiElementBacked { override abstract val psi: KtFunction override val name by lz { psi.name.orAnonymous() } @@ -92,7 +92,7 @@ class KotlinUFunction( class KotlinAnonymousInitializerUFunction( override val psi: KtAnonymousInitializer, override val parent: UElement -) : UFunction, PsiElementBacked { +) : KotlinAbstractUElement(), UFunction, PsiElementBacked { override val kind = KotlinFunctionKinds.INIT_BLOCK override val valueParameters: List @@ -131,7 +131,7 @@ class KotlinAnonymousInitializerUFunction( open class KotlinDefaultPrimaryConstructorUFunction( override val psi: KtClassOrObject, override val parent: UClass -) : UFunction, PsiElementBacked, NoModifiers, NoAnnotations { +) : KotlinAbstractUElement(), UFunction, PsiElementBacked, NoModifiers, NoAnnotations { override val kind: UastFunctionKind get() = UastFunctionKind.CONSTRUCTOR @@ -163,7 +163,7 @@ open class KotlinDefaultPrimaryConstructorUFunction( open class KotlinObjectLiteralConstructorUFunction( override val psi: KtObjectDeclaration, override val parent: UClass -) : UFunction, PsiElementBacked, NoModifiers, NoAnnotations { +) : KotlinAbstractUElement(), UFunction, PsiElementBacked, NoModifiers, NoAnnotations { private val resolvedCall by lz { val bindingContext = psi.analyze(BodyResolveMode.PARTIAL) val descriptor = bindingContext[BindingContext.DECLARATION_TO_DESCRIPTOR, psi] as? ClassDescriptor diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinStringTemplateUBinaryExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinStringTemplateUBinaryExpression.kt index 2b12f55e6db..fd78268fd69 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinStringTemplateUBinaryExpression.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinStringTemplateUBinaryExpression.kt @@ -26,7 +26,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class KotlinStringTemplateUBinaryExpression( override val psi: KtStringTemplateExpression, override val parent: UElement -) : UBinaryExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { +) : KotlinAbstractUElement(), UBinaryExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { override lateinit var leftOperand: UExpression internal set diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUArrayAccessExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUArrayAccessExpression.kt index 078051bb197..cd8ea803868 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUArrayAccessExpression.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUArrayAccessExpression.kt @@ -24,7 +24,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class KotlinUArrayAccessExpression( override val psi: KtArrayAccessExpression, override val parent: UElement -) : UArrayAccessExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { +) : KotlinAbstractUElement(), UArrayAccessExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { override val receiver by lz { KotlinConverter.convertOrEmpty(psi.arrayExpression, this) } override val indices by lz { psi.indexExpressions.map { KotlinConverter.convert(it, this) } } } \ No newline at end of file diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUBinaryExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUBinaryExpression.kt index 2b57ac80665..6d9f1bd81d6 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUBinaryExpression.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUBinaryExpression.kt @@ -25,7 +25,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class KotlinUBinaryExpression( override val psi: KtBinaryExpression, override val parent: UElement -) : UBinaryExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { +) : KotlinAbstractUElement(), UBinaryExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { override val leftOperand by lz { KotlinConverter.convertOrEmpty(psi.left, this) } override val rightOperand by lz { KotlinConverter.convertOrEmpty(psi.right, this) } @@ -63,7 +63,7 @@ class KotlinUBinaryExpression( class KotlinCustomUBinaryExpression( override val psi: PsiElement, override val parent: UElement -) : UBinaryExpression, PsiElementBacked, NoEvaluate { +) : KotlinAbstractUElement(), UBinaryExpression, PsiElementBacked, NoEvaluate { lateinit override var leftOperand: UExpression internal set diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUBinaryExpressionWithType.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUBinaryExpressionWithType.kt index 15489d572fa..f4ca34118f5 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUBinaryExpressionWithType.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUBinaryExpressionWithType.kt @@ -25,7 +25,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class KotlinUBinaryExpressionWithType( override val psi: KtBinaryExpressionWithTypeRHS, override val parent: UElement -) : UBinaryExpressionWithType, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { +) : KotlinAbstractUElement(), UBinaryExpressionWithType, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { override val operand by lz { KotlinConverter.convert(psi.left, this) } override val type by lz { KotlinConverter.convert(psi.right, this) } override val operationKind = when (psi.operationReference.getReferencedNameElementType()) { @@ -38,7 +38,7 @@ class KotlinUBinaryExpressionWithType( class KotlinCustomUBinaryExpressionWithType( override val psi: PsiElement, override val parent: UElement -) : UBinaryExpressionWithType, PsiElementBacked, NoEvaluate { +) : KotlinAbstractUElement(), UBinaryExpressionWithType, PsiElementBacked, NoEvaluate { lateinit override var operand: UExpression internal set diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUBlockExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUBlockExpression.kt index fbc5014998e..6c894d2f225 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUBlockExpression.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUBlockExpression.kt @@ -25,6 +25,6 @@ import org.jetbrains.uast.psi.PsiElementBacked class KotlinUBlockExpression( override val psi: KtBlockExpression, override val parent: UElement -) : UBlockExpression, PsiElementBacked, KotlinTypeHelper, NoEvaluate { +) : KotlinAbstractUElement(), UBlockExpression, PsiElementBacked, KotlinTypeHelper, NoEvaluate { override val expressions by lz { psi.statements.map { KotlinConverter.convertOrEmpty(it, this) } } } \ No newline at end of file diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUCatchClause.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUCatchClause.kt index f2b11dd4955..a93ee46d116 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUCatchClause.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUCatchClause.kt @@ -29,7 +29,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class KotlinUCatchClause( override val psi: KtCatchClause, override val parent: UElement -) : UCatchClause, PsiElementBacked { +) : KotlinAbstractUElement(), UCatchClause, PsiElementBacked { override val body by lz { KotlinConverter.convertOrEmpty(psi.catchBody, this) } override val parameters by lz { psi.catchParameter?.let { listOf(KotlinConverter.convert(it, this)) } ?: emptyList() } override val types by lz { diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUDeclarationsExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUDeclarationsExpression.kt index 2e52683f4d0..e46bed5bbba 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUDeclarationsExpression.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUDeclarationsExpression.kt @@ -15,7 +15,9 @@ */ package org.jetbrains.uast -class KotlinUDeclarationsExpression(override val parent: UElement) : UDeclarationsExpression { +import org.jetbrains.kotlin.uast.KotlinAbstractUElement + +class KotlinUDeclarationsExpression(override val parent: UElement) : KotlinAbstractUElement(), UDeclarationsExpression { override lateinit var declarations: List internal set diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUDoWhileExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUDoWhileExpression.kt index 90f5f083815..1f4a80ba411 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUDoWhileExpression.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUDoWhileExpression.kt @@ -25,7 +25,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class KotlinUDoWhileExpression( override val psi: KtDoWhileExpression, override val parent: UElement -) : UDoWhileExpression, PsiElementBacked, NoEvaluate { +) : KotlinAbstractUElement(), UDoWhileExpression, PsiElementBacked, NoEvaluate { override val condition by lz { KotlinConverter.convertOrEmpty(psi.condition, this) } override val body by lz { KotlinConverter.convertOrEmpty(psi.body, this) } } \ No newline at end of file diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUForEachExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUForEachExpression.kt index cc882f0e205..2796fd6db34 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUForEachExpression.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUForEachExpression.kt @@ -25,7 +25,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class KotlinUForEachExpression( override val psi: KtForExpression, override val parent: UElement -) : UForEachExpression, PsiElementBacked, NoEvaluate { +) : KotlinAbstractUElement(), UForEachExpression, PsiElementBacked, NoEvaluate { override val variableName by lz { psi.loopParameter?.name } override val iteratedValue by lz { KotlinConverter.convertOrEmpty(psi.loopRange, this) } override val body by lz { KotlinConverter.convertOrEmpty(psi.body, this) } diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUFunctionCallExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUFunctionCallExpression.kt index df35f769c56..dad7dbc00aa 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUFunctionCallExpression.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUFunctionCallExpression.kt @@ -30,7 +30,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class KotlinUFunctionCallExpression( override val psi: KtCallExpression, override val parent: UElement -) : UCallExpression, PsiElementBacked, KotlinTypeHelper, NoEvaluate { +) : KotlinAbstractUElement(), UCallExpression, PsiElementBacked, KotlinTypeHelper, NoEvaluate { override val functionName: String? get() = (psi.calleeExpression as? KtSimpleNameExpression)?.getReferencedName() diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUIfExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUIfExpression.kt index 98426c6b0d5..be388ed474d 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUIfExpression.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUIfExpression.kt @@ -24,7 +24,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class KotlinUIfExpression( override val psi: KtIfExpression, override val parent: UElement -) : UIfExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { +) : KotlinAbstractUElement(), UIfExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { override val condition by lz { KotlinConverter.convertOrEmpty(psi.condition, this) } override val thenBranch by lz { KotlinConverter.convertOrNull(psi.then, this) } override val elseBranch by lz { KotlinConverter.convertOrNull(psi.`else`, this) } diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinULambdaExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinULambdaExpression.kt index 5b700c1b3ca..0bc2c2f7bc7 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinULambdaExpression.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinULambdaExpression.kt @@ -23,7 +23,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class KotlinULambdaExpression( override val psi: KtLambdaExpression, override val parent: UElement -) : ULambdaExpression, PsiElementBacked, KotlinTypeHelper, NoEvaluate { +) : KotlinAbstractUElement(), ULambdaExpression, PsiElementBacked, KotlinTypeHelper, NoEvaluate { override val body by lz { KotlinConverter.convertOrEmpty(psi.bodyExpression, this) } override val valueParameters by lz { psi.valueParameters.map { KotlinConverter.convert(it, this) } } override fun renderString(): String { diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinULiteralExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinULiteralExpression.kt index cef75f6aaf3..676923387e2 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinULiteralExpression.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinULiteralExpression.kt @@ -26,7 +26,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class KotlinULiteralExpression( override val psi: KtConstantExpression, override val parent: UElement -) : ULiteralExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { +) : KotlinAbstractUElement(), ULiteralExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { override val isNull: Boolean get() = psi.isNullExpression() @@ -39,7 +39,7 @@ class KotlinULiteralExpression( class KotlinStringULiteralExpression( override val psi: PsiElement, override val parent: UElement -) : ULiteralExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { +) : KotlinAbstractUElement(), ULiteralExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { override val isNull = false override val text: String get() = '"' + psi.text + '"' diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUParenthesizedExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUParenthesizedExpression.kt index f82a2f07edc..d224a2f1568 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUParenthesizedExpression.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUParenthesizedExpression.kt @@ -24,6 +24,6 @@ import org.jetbrains.uast.psi.PsiElementBacked class KotlinUParenthesizedExpression( override val psi: KtParenthesizedExpression, override val parent: UElement -) : UParenthesizedExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { +) : KotlinAbstractUElement(), UParenthesizedExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { override val expression by lz { KotlinConverter.convertOrEmpty(psi.expression, this) } } \ No newline at end of file diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUPostfixExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUPostfixExpression.kt index 654c917cae3..768a9ba3a2f 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUPostfixExpression.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUPostfixExpression.kt @@ -18,7 +18,6 @@ package org.jetbrains.kotlin.uast import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.psi.KtPostfixExpression -import org.jetbrains.uast.NoEvaluate import org.jetbrains.uast.UElement import org.jetbrains.uast.UPostfixExpression import org.jetbrains.uast.UastPostfixOperator @@ -27,7 +26,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class KotlinUPostfixExpression( override val psi: KtPostfixExpression, override val parent: UElement -) : UPostfixExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { +) : KotlinAbstractUElement(), UPostfixExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { override val operand by lz { KotlinConverter.convertOrEmpty(psi.baseExpression, this) } override val operator = when (psi.operationToken) { diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUPrefixExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUPrefixExpression.kt index 9818b01d490..597568e2e99 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUPrefixExpression.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUPrefixExpression.kt @@ -18,7 +18,6 @@ package org.jetbrains.kotlin.uast import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.psi.KtPrefixExpression -import org.jetbrains.uast.NoEvaluate import org.jetbrains.uast.UElement import org.jetbrains.uast.UPrefixExpression import org.jetbrains.uast.UastPrefixOperator @@ -27,7 +26,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class KotlinUPrefixExpression( override val psi: KtPrefixExpression, override val parent: UElement -) : UPrefixExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { +) : KotlinAbstractUElement(), UPrefixExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { override val operand by lz { KotlinConverter.convertOrEmpty(psi.baseExpression, this) } override val operator = when (psi.operationToken) { diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUQualifiedExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUQualifiedExpression.kt index 297f8cba215..2da8c6bc405 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUQualifiedExpression.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUQualifiedExpression.kt @@ -24,7 +24,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class KotlinUQualifiedExpression( override val psi: KtDotQualifiedExpression, override val parent: UElement -) : UQualifiedExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { +) : KotlinAbstractUElement(), UQualifiedExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { override val receiver by lz { KotlinConverter.convertOrEmpty(psi.receiverExpression, this) } override val selector by lz { KotlinConverter.convertOrEmpty(psi.selectorExpression, this) } override val accessType = UastQualifiedExpressionAccessType.SIMPLE @@ -35,7 +35,7 @@ class KotlinUQualifiedExpression( class KotlinUComponentQualifiedExpression( override val psi: KtDestructuringDeclarationEntry, override val parent: UElement -) : UQualifiedExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { +) : KotlinAbstractUElement(), UQualifiedExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { override lateinit var receiver: UExpression internal set diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUSafeQualifiedExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUSafeQualifiedExpression.kt index 9b300157d22..b93dce7304e 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUSafeQualifiedExpression.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUSafeQualifiedExpression.kt @@ -17,7 +17,6 @@ package org.jetbrains.kotlin.uast import org.jetbrains.kotlin.psi.KtSafeQualifiedExpression -import org.jetbrains.uast.NoEvaluate import org.jetbrains.uast.UElement import org.jetbrains.uast.UQualifiedExpression import org.jetbrains.uast.UastContext @@ -26,7 +25,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class KotlinUSafeQualifiedExpression( override val psi: KtSafeQualifiedExpression, override val parent: UElement -) : UQualifiedExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { +) : KotlinAbstractUElement(), UQualifiedExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { override val receiver by lz { KotlinConverter.convertOrEmpty(psi.receiverExpression, this) } override val selector by lz { KotlinConverter.convertOrEmpty(psi.selectorExpression, this) } override val accessType = KotlinQualifiedExpressionAccessTypes.SAFE diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUSimpleReferenceExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUSimpleReferenceExpression.kt index 1bcdd492fac..6024e818039 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUSimpleReferenceExpression.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUSimpleReferenceExpression.kt @@ -29,7 +29,7 @@ open class KotlinUSimpleReferenceExpression( override val psi: PsiElement, override val identifier: String, override val parent: UElement -) : USimpleReferenceExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { +) : KotlinAbstractUElement(), USimpleReferenceExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { override fun resolve(context: UastContext) = context.convert( psi.references.firstOrNull()?.resolve()) as? UDeclaration } @@ -44,7 +44,7 @@ class KotlinClassViaConstructorUSimpleReferenceExpression( override val psi: KtCallExpression, override val identifier: String, override val parent: UElement -) : USimpleReferenceExpression, PsiElementBacked, KotlinTypeHelper, NoEvaluate { +) : KotlinAbstractUElement(), USimpleReferenceExpression, PsiElementBacked, KotlinTypeHelper, NoEvaluate { override fun resolve(context: UastContext): UDeclaration? { val resolvedCall = psi.getResolvedCall(psi.analyze(BodyResolveMode.PARTIAL)) val resultingDescriptor = resolvedCall?.resultingDescriptor as? ConstructorDescriptor ?: return null @@ -57,6 +57,6 @@ class KotlinClassViaConstructorUSimpleReferenceExpression( class KotlinStringUSimpleReferenceExpression( override val identifier: String, override val parent: UElement -) : USimpleReferenceExpression, NoEvaluate { +) : KotlinAbstractUElement(), USimpleReferenceExpression, NoEvaluate { override fun resolve(context: UastContext) = null } \ No newline at end of file diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUSpecialExpressionList.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUSpecialExpressionList.kt index 69bb8e3be71..4104bce4a4f 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUSpecialExpressionList.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUSpecialExpressionList.kt @@ -32,7 +32,7 @@ open class KotlinUSpecialExpressionList( override val psi: PsiElement?, override val kind: UastSpecialExpressionKind, // original element override val parent: UElement -) : USpecialExpressionList, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { +) : KotlinAbstractUElement(), USpecialExpressionList, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { class Empty(psi: PsiElement, expressionType: UastSpecialExpressionKind, parent: UElement) : KotlinUSpecialExpressionList(psi, expressionType, parent) { init { expressions = emptyList() } diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUSuperExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUSuperExpression.kt index 8e97a7b09a1..b688e59eb56 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUSuperExpression.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUSuperExpression.kt @@ -24,4 +24,4 @@ import org.jetbrains.uast.psi.PsiElementBacked class KotlinUSuperExpression( override val psi: KtSuperExpression, override val parent: UElement -) : USuperExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper \ No newline at end of file +) : KotlinAbstractUElement(), USuperExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper \ No newline at end of file diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUSwitchExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUSwitchExpression.kt index d314b8061a4..e9122c8cb4d 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUSwitchExpression.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUSwitchExpression.kt @@ -24,7 +24,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class KotlinUSwitchExpression( override val psi: KtWhenExpression, override val parent: UElement -) : USwitchExpression, PsiElementBacked, KotlinTypeHelper, NoEvaluate { +) : KotlinAbstractUElement(), USwitchExpression, PsiElementBacked, KotlinTypeHelper, NoEvaluate { override val expression by lz { KotlinConverter.convertOrNull(psi.subjectExpression, this) } //TODO to entries @@ -47,7 +47,7 @@ class KotlinUSwitchExpression( class KotlinUSwitchEntry( override val psi: KtWhenEntry, override val parent: UExpression -) : UExpression, PsiElementBacked, NoEvaluate { +) : KotlinAbstractUElement(), UExpression, PsiElementBacked, NoEvaluate { val conditions by lz { psi.conditions.map { when (it) { is KtWhenConditionInRange -> KotlinCustomUBinaryExpression(it, this).apply { diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUThisExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUThisExpression.kt index e2eabc7e64c..a5b6e31b310 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUThisExpression.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUThisExpression.kt @@ -17,7 +17,6 @@ package org.jetbrains.kotlin.uast import org.jetbrains.kotlin.psi.KtThisExpression -import org.jetbrains.uast.NoEvaluate import org.jetbrains.uast.UElement import org.jetbrains.uast.UThisExpression import org.jetbrains.uast.psi.PsiElementBacked @@ -25,4 +24,4 @@ import org.jetbrains.uast.psi.PsiElementBacked class KotlinUThisExpression( override val psi: KtThisExpression, override val parent: UElement -) : UThisExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper \ No newline at end of file +) : KotlinAbstractUElement(), UThisExpression, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper \ No newline at end of file diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUTryExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUTryExpression.kt index a5df1189d3c..be31abce6e6 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUTryExpression.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUTryExpression.kt @@ -25,7 +25,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class KotlinUTryExpression( override val psi: KtTryExpression, override val parent: UElement -) : UTryExpression, PsiElementBacked, KotlinTypeHelper, NoEvaluate { +) : KotlinAbstractUElement(), UTryExpression, PsiElementBacked, KotlinTypeHelper, NoEvaluate { override val tryClause by lz { KotlinConverter.convert(psi.tryBlock, this) } override val catchClauses by lz { psi.catchClauses.map { KotlinUCatchClause(it, this) } } override val finallyClause by lz { psi.finallyBlock?.finalExpression?.let { KotlinConverter.convert(it, this) } } diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUTypeCheckExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUTypeCheckExpression.kt index abe28b15617..298e9e074c8 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUTypeCheckExpression.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUTypeCheckExpression.kt @@ -24,7 +24,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class KotlinUTypeCheckExpression( override val psi: KtIsExpression, override val parent: UElement -) : UBinaryExpressionWithType, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { +) : KotlinAbstractUElement(), UBinaryExpressionWithType, PsiElementBacked, KotlinTypeHelper, KotlinEvaluateHelper { override val operand by lz { KotlinConverter.convert(psi.leftHandSide, this) } override val type by lz { KotlinConverter.convert(psi.typeReference, this) } override val operationKind = KotlinBinaryExpressionWithTypeKinds.NEGATED_INSTANCE_CHECK diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUWhileExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUWhileExpression.kt index 90ad562d832..d03452cc13e 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUWhileExpression.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/KotlinUWhileExpression.kt @@ -25,7 +25,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class KotlinUWhileExpression( override val psi: KtWhileExpression, override val parent: UElement -) : UWhileExpression, PsiElementBacked, NoEvaluate { +) : KotlinAbstractUElement(), UWhileExpression, PsiElementBacked, NoEvaluate { override val condition by lz { KotlinConverter.convertOrEmpty(psi.condition, this) } override val body by lz { KotlinConverter.convertOrEmpty(psi.body, this) } } \ No newline at end of file diff --git a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/UnknownKotlinExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/UnknownKotlinExpression.kt index e6d524df43d..07acca8313c 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/UnknownKotlinExpression.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/kotlin/uast/expressions/UnknownKotlinExpression.kt @@ -26,7 +26,7 @@ import org.jetbrains.uast.psi.PsiElementBacked class UnknownKotlinExpression( override val psi: KtExpression, override val parent: UElement -) : UExpression, PsiElementBacked, NoEvaluate { +) : KotlinAbstractUElement(), UExpression, PsiElementBacked, NoEvaluate { override fun traverse(handler: UastHandler) {} override fun logString() = "[!] UnknownKotlinExpression ($psi)" } \ No newline at end of file