when getting a descriptor for a PsiMethod, also check that it has a valid name (KT-9174)
#KT-9174 Fixed
This commit is contained in:
+2
-1
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.incremental.components.NoLookupLocation
|
|||||||
import org.jetbrains.kotlin.load.java.sources.JavaSourceElement
|
import org.jetbrains.kotlin.load.java.sources.JavaSourceElement
|
||||||
import org.jetbrains.kotlin.load.java.structure.*
|
import org.jetbrains.kotlin.load.java.structure.*
|
||||||
import org.jetbrains.kotlin.load.java.structure.impl.*
|
import org.jetbrains.kotlin.load.java.structure.impl.*
|
||||||
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver
|
import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver
|
||||||
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform
|
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform
|
||||||
import org.jetbrains.kotlin.resolve.scopes.JetScope
|
import org.jetbrains.kotlin.resolve.scopes.JetScope
|
||||||
@@ -38,7 +39,7 @@ private fun PsiElement.getJavaDescriptorResolver(): JavaDescriptorResolver? {
|
|||||||
|
|
||||||
fun PsiMethod.getJavaMethodDescriptor(): FunctionDescriptor? {
|
fun PsiMethod.getJavaMethodDescriptor(): FunctionDescriptor? {
|
||||||
val method = getOriginalElement() as? PsiMethod ?: return null
|
val method = getOriginalElement() as? PsiMethod ?: return null
|
||||||
if (method.containingClass == null) return null
|
if (method.containingClass == null || !Name.isValidIdentifier(method.getName())) return null
|
||||||
val resolver = method.getJavaDescriptorResolver()
|
val resolver = method.getJavaDescriptorResolver()
|
||||||
return when {
|
return when {
|
||||||
method.isConstructor() -> resolver?.resolveConstructor(JavaConstructorImpl(method))
|
method.isConstructor() -> resolver?.resolveConstructor(JavaConstructorImpl(method))
|
||||||
|
|||||||
Reference in New Issue
Block a user