UAST: cleanup plugin file to have only plugin definition

This commit is contained in:
Jinseong Jeon
2021-05-20 23:48:59 -07:00
committed by Ilya Kirillov
parent 8b93727f64
commit 5effbce363
3 changed files with 16 additions and 14 deletions
@@ -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()
}
@@ -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?
@@ -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<WeakReference<UElement>>("cached-kotlin-uelement")
@Suppress("NOTHING_TO_INLINE")