Java Uast, Minor: Convert Java Uast properties with backing field to properties with getter (optimization)

This commit is contained in:
Yan Zhulanow
2016-03-10 17:56:34 +03:00
parent f130dc96f7
commit 335712141d
15 changed files with 129 additions and 52 deletions
@@ -28,5 +28,7 @@ class JavaUIfExpression(
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) }
override val isTernary = false
override val isTernary: Boolean
get() = false
}
@@ -27,5 +27,7 @@ class JavaUTernaryIfExpression(
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) }
override val isTernary = true
override val isTernary: Boolean
get() = true
}
@@ -23,17 +23,34 @@ class JavaClassInitializerUFunction(
override val psi: PsiClassInitializer,
override val parent: UElement
) : UFunction, PsiElementBacked, NoAnnotations, NoModifiers {
override val kind = UastFunctionKind.INITIALIZER
override val valueParameters = emptyList<UVariable>()
override val valueParameterCount = 0
override val typeParameters = emptyList<UTypeReference>()
override val typeParameterCount = 0
override val returnType = null
override val kind: UastFunctionKind.UastInitializerKind
get() = JavaFunctionKinds.STATIC_INITIALIZER
override val valueParameters: List<UVariable>
get() = emptyList()
override val valueParameterCount: Int
get() = 0
override val typeParameters: List<UTypeReference>
get() = emptyList()
override val typeParameterCount: Int
get() = 0
override val returnType: UType?
get() = null
override val body by lz { JavaConverter.convert(psi.body, this) }
override val visibility = UastVisibility.LOCAL
override val nameElement = null
override val name = "<static>"
override val visibility: UastVisibility
get() = UastVisibility.LOCAL
override val nameElement: UElement?
get() = null
override val name: String
get() = "<static>"
override fun getSuperFunctions(context: UastContext) = emptyList<UFunction>()
}
@@ -48,8 +48,11 @@ class JavaUClass(
override val isAnnotation: Boolean
get() = psi.isAnnotationType
override val isObject = psi is PsiAnonymousClass
override val isAnonymous = psi is PsiAnonymousClass
override val isObject: Boolean
get() = psi is PsiAnonymousClass
override val isAnonymous: Boolean
get() = psi is PsiAnonymousClass
override val internalName = null
@@ -120,14 +123,21 @@ private class JavaUAnonymousClassConstructor(
override val typeParameterCount: Int
get() = psi.typeParameters.size
override val returnType = null
override val returnType: UType?
get() = null
override val body = EmptyExpression(this)
override val visibility = UastVisibility.LOCAL
override val visibility: UastVisibility
get() = UastVisibility.LOCAL
override fun getSuperFunctions(context: UastContext) = emptyList<UFunction>()
override val nameElement = null
override val name = "<init>"
override val nameElement: UElement?
get() = null
override val name: String
get() = "<init>"
}
private class JavaUAnonymousClassConstructorParameter(
@@ -136,8 +146,15 @@ private class JavaUAnonymousClassConstructorParameter(
override val parent: UElement
) : UVariable, NoAnnotations, NoModifiers {
override val initializer by lz { JavaConverter.convert(psi.expressions[index], this) }
override val kind = UastVariableKind.VALUE_PARAMETER
override val kind: UastVariableKind
get() = UastVariableKind.VALUE_PARAMETER
override val type by lz { JavaConverter.convert(psi.expressionTypes[index], this) }
override val nameElement = null
override val name = "p$index"
override val nameElement: UElement?
get() = null
override val name: String
get() = "p$index"
}
@@ -27,5 +27,6 @@ class JavaUImportStatement(
override val nameToImport: String?
get() = psi.qualifiedName
override val isStarImport = false
override val isStarImport: Boolean
get() = false
}
@@ -27,5 +27,6 @@ class JavaUStaticImportStatement(
override val nameToImport: String?
get() = psi.referenceName
override val isStarImport = true
override val isStarImport: Boolean
get() = true
}
@@ -28,8 +28,12 @@ class JavaValueParameterUVariable(
override val nameElement by lz { JavaConverter.convert(psi.nameIdentifier, this) }
override val type by lz { JavaConverter.convert(psi.type, this) }
override val initializer = null
override val kind = UastVariableKind.VALUE_PARAMETER
override val initializer: UExpression?
get() = null
override val kind: UastVariableKind
get() = UastVariableKind.VALUE_PARAMETER
override val annotations by lz { psi.modifierList.getAnnotations(this) }
}
@@ -25,6 +25,9 @@ class JavaUAssignmentExpression(
override val parent: UElement
) : UAssignmentExpression, PsiElementBacked, JavaTypeHelper, JavaEvaluateHelper {
override val reference by lz { JavaConverter.convert(psi.lExpression, this) }
override val operator = psi.operationSign.text
override val operator: String
get() = psi.operationSign.text
override val value by lz { JavaConverter.convertOrEmpty(psi.rExpression, this) }
}
@@ -28,7 +28,8 @@ class JavaUCompositeQualifiedExpression(
override lateinit var selector: UExpression
internal set
override val accessType = UastQualifiedExpressionAccessType.SIMPLE
override val accessType: UastQualifiedExpressionAccessType
get() = UastQualifiedExpressionAccessType.SIMPLE
override fun resolve(context: UastContext): UDeclaration? {
val selector = selector
@@ -27,6 +27,9 @@ class JavaUInstanceCheckExpression(
) : 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) }
override val operationKind = UastBinaryExpressionWithTypeKind.INSTANCE_CHECK
override val operationKind: UastBinaryExpressionWithTypeKind.InstanceCheck
get() = UastBinaryExpressionWithTypeKind.INSTANCE_CHECK
override fun evaluate() = null
}
@@ -27,5 +27,7 @@ class JavaULiteralExpression(
override val text by lz { psi.text }
override fun evaluate() = psi.value
override val value by lz { evaluate() }
override val isNull = text == "null"
override val isNull: Boolean
get() = text == "null"
}
@@ -25,7 +25,9 @@ class JavaUQualifiedExpression(
) : 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) }
override val accessType = UastQualifiedExpressionAccessType.SIMPLE
override val accessType: UastQualifiedExpressionAccessType
get() = UastQualifiedExpressionAccessType.SIMPLE
override fun resolve(context: UastContext) = psi.resolve()?.let { JavaConverter.convertWithParent(it) } as? UDeclaration
}
@@ -27,5 +27,7 @@ class JavaUTypeCastExpression(
) : 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) }
override val operationKind = UastBinaryExpressionWithTypeKind.TYPE_CAST
override val operationKind: UastBinaryExpressionWithTypeKind.TypeCast
get() = UastBinaryExpressionWithTypeKind.TYPE_CAST
}
@@ -16,16 +16,12 @@
package org.jetbrains.uast.java
import com.intellij.psi.PsiElement
import org.jetbrains.uast.NoEvaluate
import org.jetbrains.uast.UElement
import org.jetbrains.uast.UExpression
import org.jetbrains.uast.UastHandler
import org.jetbrains.uast.*
import org.jetbrains.uast.psi.PsiElementBacked
class UnknownJavaExpression(
override val psi: PsiElement,
override val parent: UElement
) : UExpression, PsiElementBacked, NoEvaluate {
override fun traverse(handler: UastHandler) {}
) : UExpression, PsiElementBacked, NoEvaluate, NoTraverse {
override fun logString() = "[!] UnknownJavaExpression ($psi)"
}
@@ -26,13 +26,15 @@ class JavaUCallExpression(
override val psi: PsiMethodCallExpression,
override val parent: UElement
) : UCallExpression, PsiElementBacked, JavaTypeHelper, NoEvaluate {
override val kind = UastCallKind.FUNCTION_CALL
override val kind: UastCallKind
get() = UastCallKind.FUNCTION_CALL
override val functionReference by lz {
JavaConverter.convert(psi.methodExpression.referenceNameElement, this) as? USimpleReferenceExpression
}
override val classReference = null
override val classReference: USimpleReferenceExpression?
get() = null
override val valueArgumentCount by lz { psi.argumentList.expressions.size }
override val valueArguments by lz { psi.argumentList.expressions.map { JavaConverter.convert(it, this) } }
@@ -61,7 +63,8 @@ class JavaConstructorUCallExpression(
}
}
override val functionReference = null
override val functionReference: USimpleReferenceExpression?
get() = null
override val classReference by lz {
psi.classReference?.let { ref ->
@@ -116,18 +119,29 @@ class JavaArrayInitializerUCallExpression(
override val psi: PsiArrayInitializerExpression,
override val parent: UElement
) : UCallExpression, PsiElementBacked, JavaTypeHelper, JavaEvaluateHelper {
override val functionReference = null
override val classReference = null
override val functionName = "<array>"
override val functionNameElement = null
override val functionReference: USimpleReferenceExpression?
get() = null
override val classReference: USimpleReferenceExpression?
get() = null
override val functionName: String
get() = "<array>"
override val functionNameElement: UElement?
get() = null
override val valueArgumentCount by lz { psi.initializers.size }
override val valueArguments by lz { psi.initializers.map { JavaConverter.convert(it, this) } }
override val typeArgumentCount = 0
override val typeArguments = emptyList<UType>()
override val typeArgumentCount: Int
get() = 0
override val kind = JavaUastCallKinds.ARRAY_INITIALIZER
override val typeArguments: List<UType>
get() = emptyList()
override val kind: UastCallKind
get() = JavaUastCallKinds.ARRAY_INITIALIZER
override fun resolve(context: UastContext) = null
override fun evaluate() = null
@@ -139,10 +153,17 @@ class JavaAnnotationArrayInitializerUCallExpression(
) : UCallExpression, PsiElementBacked, JavaTypeHelper, JavaEvaluateHelper {
override val kind = JavaUastCallKinds.ARRAY_INITIALIZER
override val functionReference = null
override val classReference = null
override val functionName = "<annotationArray>"
override val functionNameElement = null
override val functionReference: USimpleReferenceExpression?
get() = null
override val classReference: USimpleReferenceExpression?
get() = null
override val functionName: String
get() = "<annotationArray>"
override val functionNameElement: UElement?
get() = null
override val valueArgumentCount by lz { psi.initializers.size }
override val valueArguments by lz {
@@ -151,8 +172,11 @@ class JavaAnnotationArrayInitializerUCallExpression(
}
}
override val typeArgumentCount = 0
override val typeArguments = emptyList<UType>()
override val typeArgumentCount: Int
get() = 0
override val typeArguments: List<UType>
get() = emptyList()
override fun resolve(context: UastContext) = null
}