ULC: fix PsiMethod#getThrowsList for accessors
^KTIJ-17761
This commit is contained in:
committed by
Space Team
parent
cc7083d59e
commit
5f986fd467
+16
-2
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.codegen.FunctionCodegen
|
|||||||
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
|
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
|
||||||
import org.jetbrains.kotlin.descriptors.ConstructorDescriptor
|
import org.jetbrains.kotlin.descriptors.ConstructorDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
||||||
|
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
||||||
import org.jetbrains.kotlin.load.java.BuiltinMethodsWithSpecialGenericSignature.getSpecialSignatureInfo
|
import org.jetbrains.kotlin.load.java.BuiltinMethodsWithSpecialGenericSignature.getSpecialSignatureInfo
|
||||||
import org.jetbrains.kotlin.load.java.descriptors.JavaMethodDescriptor
|
import org.jetbrains.kotlin.load.java.descriptors.JavaMethodDescriptor
|
||||||
import org.jetbrains.kotlin.load.kotlin.TypeMappingMode
|
import org.jetbrains.kotlin.load.kotlin.TypeMappingMode
|
||||||
@@ -85,7 +86,7 @@ internal abstract class KtUltraLightMethod(
|
|||||||
lightMemberOrigin: LightMemberOriginForDeclaration?,
|
lightMemberOrigin: LightMemberOriginForDeclaration?,
|
||||||
protected val support: KtUltraLightSupport,
|
protected val support: KtUltraLightSupport,
|
||||||
containingClass: KtLightClass,
|
containingClass: KtLightClass,
|
||||||
private val methodIndex: Int
|
protected val methodIndex: Int
|
||||||
) : KtLightMethodImpl(
|
) : KtLightMethodImpl(
|
||||||
lightMemberOrigin,
|
lightMemberOrigin,
|
||||||
containingClass
|
containingClass
|
||||||
@@ -234,7 +235,20 @@ internal class KtUltraLightMethodForSourceDeclaration(
|
|||||||
else LightTypeParameterListBuilder(manager, language)
|
else LightTypeParameterListBuilder(manager, language)
|
||||||
}
|
}
|
||||||
|
|
||||||
private val methodDescriptor get() = kotlinOrigin?.resolve() as? FunctionDescriptor
|
private val methodDescriptor: FunctionDescriptor?
|
||||||
|
get() {
|
||||||
|
return when (val descriptor = kotlinOrigin?.resolve()) {
|
||||||
|
is FunctionDescriptor -> descriptor
|
||||||
|
is PropertyDescriptor -> {
|
||||||
|
when (methodIndex) {
|
||||||
|
METHOD_INDEX_FOR_GETTER -> descriptor.getter
|
||||||
|
METHOD_INDEX_FOR_SETTER -> descriptor.setter
|
||||||
|
else -> null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else -> null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private val _throwsList: PsiReferenceList by lazyPub { computeThrowsList(methodDescriptor) }
|
private val _throwsList: PsiReferenceList by lazyPub { computeThrowsList(methodDescriptor) }
|
||||||
override fun getThrowsList(): PsiReferenceList = _throwsList
|
override fun getThrowsList(): PsiReferenceList = _throwsList
|
||||||
|
|||||||
Reference in New Issue
Block a user