Misc: Use delegate with predefined name for fake light methods
#KT-21414 Fixed
This commit is contained in:
+6
-2
@@ -39,12 +39,14 @@ import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||
class KtFakeLightClass(override val kotlinOrigin: KtClassOrObject) :
|
||||
AbstractLightClass(kotlinOrigin.manager, KotlinLanguage.INSTANCE),
|
||||
KtLightClass {
|
||||
private val _delegate by lazy { PsiElementFactory.SERVICE.getInstance(kotlinOrigin.project).createClass(kotlinOrigin.name ?: "") }
|
||||
private val _delegate by lazy { PsiElementFactory.SERVICE.getInstance(kotlinOrigin.project).createClass("dummy") }
|
||||
private val _containingClass by lazy { kotlinOrigin.containingClassOrObject?.let { KtFakeLightClass(it) } }
|
||||
|
||||
override val clsDelegate get() = _delegate
|
||||
override val originKind get() = LightClassOriginKind.SOURCE
|
||||
|
||||
override fun getName() = kotlinOrigin.name
|
||||
|
||||
override fun getDelegate() = _delegate
|
||||
override fun copy() = KtFakeLightClass(kotlinOrigin)
|
||||
|
||||
@@ -70,13 +72,15 @@ class KtFakeLightMethod private constructor(
|
||||
ktClassOrObject : KtClassOrObject
|
||||
) : LightMethod (
|
||||
ktDeclaration.manager,
|
||||
PsiElementFactory.SERVICE.getInstance(ktDeclaration.project).createMethod(ktDeclaration.name ?: "", PsiType.VOID),
|
||||
PsiElementFactory.SERVICE.getInstance(ktDeclaration.project).createMethod("dummy", PsiType.VOID),
|
||||
KtFakeLightClass(ktClassOrObject),
|
||||
KotlinLanguage.INSTANCE
|
||||
), KtLightElement<KtNamedDeclaration, PsiMethod> {
|
||||
override val kotlinOrigin get() = ktDeclaration
|
||||
override val clsDelegate get() = myMethod
|
||||
|
||||
override fun getName() = ktDeclaration.name ?: ""
|
||||
|
||||
override fun getNavigationElement() = ktDeclaration
|
||||
override fun getIcon(flags: Int) = ktDeclaration.getIcon(flags)
|
||||
override fun getUseScope() = ktDeclaration.useScope
|
||||
|
||||
Reference in New Issue
Block a user