From 5effbce3638f6aa39a6bff430f42cf828cb2ca78 Mon Sep 17 00:00:00 2001 From: Jinseong Jeon Date: Thu, 20 May 2021 23:48:59 -0700 Subject: [PATCH] UAST: cleanup plugin file to have only plugin definition --- .../uast/kotlin/KotlinUastLanguagePlugin.kt | 21 +++++++------------ .../KotlinUSimpleReferenceExpression.kt | 3 +++ .../internal/kotlinInternalUastUtils.kt | 6 ++++++ 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/KotlinUastLanguagePlugin.kt b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/KotlinUastLanguagePlugin.kt index 8d2a8e205a0..1692bc866f0 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/KotlinUastLanguagePlugin.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/KotlinUastLanguagePlugin.kt @@ -18,7 +18,6 @@ package org.jetbrains.uast.kotlin import com.intellij.lang.Language import com.intellij.openapi.components.ServiceManager -import com.intellij.openapi.util.Key import com.intellij.psi.PsiElement import com.intellij.psi.PsiFile import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade @@ -33,8 +32,6 @@ import org.jetbrains.uast.kotlin.KotlinConverter.convertDeclaration import org.jetbrains.uast.kotlin.KotlinConverter.convertDeclarationOrElement import org.jetbrains.uast.kotlin.psi.UastFakeLightPrimaryConstructor -var PsiElement.destructuringDeclarationInitializer: Boolean? by UserDataProperty(Key.create("kotlin.uast.destructuringDeclarationInitializer")) - class KotlinUastLanguagePlugin : UastLanguagePlugin { override val priority = 10 @@ -65,9 +62,9 @@ class KotlinUastLanguagePlugin : UastLanguagePlugin { } override fun getMethodCallExpression( - element: PsiElement, - containingClassFqName: String?, - methodName: String + element: PsiElement, + containingClassFqName: String?, + methodName: String ): UastLanguagePlugin.ResolvedMethod? { if (element !is KtCallExpression) return null val resolvedCall = element.getResolvedCall(element.analyze()) ?: return null @@ -84,14 +81,15 @@ class KotlinUastLanguagePlugin : UastLanguagePlugin { } override fun getConstructorCallExpression( - element: PsiElement, - fqName: String + element: PsiElement, + fqName: String ): UastLanguagePlugin.ResolvedConstructor? { if (element !is KtCallExpression) return null val resolvedCall = element.getResolvedCall(element.analyze()) ?: return null val resultingDescriptor = resolvedCall.resultingDescriptor if (resultingDescriptor !is ConstructorDescriptor - || resultingDescriptor.returnType.constructor.declarationDescriptor?.name?.asString() != fqName) { + || resultingDescriptor.returnType.constructor.declarationDescriptor?.name?.asString() != fqName + ) { return null } @@ -140,8 +138,3 @@ class KotlinUastLanguagePlugin : UastLanguagePlugin { else -> sequenceOf(convertElementWithParent(element, requiredTypes.nonEmptyOr(DEFAULT_TYPES_LIST)) as? T).filterNotNull() } } - -val kotlinUastPlugin: UastLanguagePlugin by lz { - UastLanguagePlugin.getInstances().find { it.language == KotlinLanguage.INSTANCE } - ?: KotlinUastLanguagePlugin() -} diff --git a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinUSimpleReferenceExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinUSimpleReferenceExpression.kt index 2fa9d39292c..a491fb5a492 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinUSimpleReferenceExpression.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinUSimpleReferenceExpression.kt @@ -16,6 +16,7 @@ package org.jetbrains.uast.kotlin +import com.intellij.openapi.util.Key import com.intellij.psi.* import org.jetbrains.kotlin.descriptors.CallableDescriptor import org.jetbrains.kotlin.descriptors.ConstructorDescriptor @@ -34,6 +35,8 @@ import org.jetbrains.uast.kotlin.declarations.KotlinUIdentifier import org.jetbrains.uast.kotlin.internal.DelegatedMultiResolve import org.jetbrains.uast.visitor.UastVisitor +var PsiElement.destructuringDeclarationInitializer: Boolean? by UserDataProperty(Key.create("kotlin.uast.destructuringDeclarationInitializer")) + open class KotlinUSimpleReferenceExpression( override val sourcePsi: KtSimpleNameExpression, givenParent: UElement? diff --git a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/internal/kotlinInternalUastUtils.kt b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/internal/kotlinInternalUastUtils.kt index eac3042533f..c5a0a7b428a 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/internal/kotlinInternalUastUtils.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/internal/kotlinInternalUastUtils.kt @@ -32,6 +32,7 @@ import org.jetbrains.kotlin.builtins.isBuiltinFunctionalTypeOrSubtype import org.jetbrains.kotlin.codegen.signature.BothSignatureWriter import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.synthetic.SyntheticMemberDescriptor +import org.jetbrains.kotlin.idea.KotlinLanguage import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.load.java.lazy.descriptors.LazyJavaPackageFragment import org.jetbrains.kotlin.load.java.sam.SamAdapterDescriptor @@ -81,6 +82,11 @@ import org.jetbrains.uast.kotlin.psi.UastFakeLightPrimaryConstructor import java.lang.ref.WeakReference import java.text.StringCharacterIterator +val kotlinUastPlugin: UastLanguagePlugin by lz { + UastLanguagePlugin.getInstances().find { it.language == KotlinLanguage.INSTANCE } + ?: KotlinUastLanguagePlugin() +} + internal val KOTLIN_CACHED_UELEMENT_KEY = Key.create>("cached-kotlin-uelement") @Suppress("NOTHING_TO_INLINE")