LightClass improved isInheritor check for cases when resolve is failed
Fixed #KT-37210
This commit is contained in:
+8
-5
@@ -13,6 +13,7 @@ import com.intellij.openapi.util.Key
|
|||||||
import com.intellij.openapi.util.TextRange
|
import com.intellij.openapi.util.TextRange
|
||||||
import com.intellij.openapi.util.registry.Registry
|
import com.intellij.openapi.util.registry.Registry
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
|
import com.intellij.psi.impl.InheritanceImplUtil
|
||||||
import com.intellij.psi.impl.PsiSubstitutorImpl
|
import com.intellij.psi.impl.PsiSubstitutorImpl
|
||||||
import com.intellij.psi.impl.java.stubs.PsiJavaFileStub
|
import com.intellij.psi.impl.java.stubs.PsiJavaFileStub
|
||||||
import com.intellij.psi.impl.source.PsiImmediateClassType
|
import com.intellij.psi.impl.source.PsiImmediateClassType
|
||||||
@@ -21,10 +22,7 @@ import com.intellij.psi.scope.PsiScopeProcessor
|
|||||||
import com.intellij.psi.search.SearchScope
|
import com.intellij.psi.search.SearchScope
|
||||||
import com.intellij.psi.stubs.IStubElementType
|
import com.intellij.psi.stubs.IStubElementType
|
||||||
import com.intellij.psi.stubs.StubElement
|
import com.intellij.psi.stubs.StubElement
|
||||||
import com.intellij.psi.util.CachedValue
|
import com.intellij.psi.util.*
|
||||||
import com.intellij.psi.util.CachedValueProvider
|
|
||||||
import com.intellij.psi.util.CachedValuesManager
|
|
||||||
import com.intellij.psi.util.PsiUtilCore
|
|
||||||
import com.intellij.util.IncorrectOperationException
|
import com.intellij.util.IncorrectOperationException
|
||||||
import org.jetbrains.annotations.NonNls
|
import org.jetbrains.annotations.NonNls
|
||||||
import org.jetbrains.kotlin.analyzer.KotlinModificationTrackerService
|
import org.jetbrains.kotlin.analyzer.KotlinModificationTrackerService
|
||||||
@@ -275,7 +273,12 @@ abstract class KtLightClassForSourceDeclaration(
|
|||||||
}
|
}
|
||||||
|
|
||||||
val thisDescriptor = getDescriptor()
|
val thisDescriptor = getDescriptor()
|
||||||
return qualifiedName != null && thisDescriptor != null && checkSuperTypeByFQName(thisDescriptor, qualifiedName, checkDeep)
|
|
||||||
|
return if (qualifiedName != null && thisDescriptor != null) {
|
||||||
|
checkSuperTypeByFQName(thisDescriptor, qualifiedName, checkDeep)
|
||||||
|
} else {
|
||||||
|
InheritanceImplUtil.isInheritor(this, baseClass, checkDeep)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Throws(IncorrectOperationException::class)
|
@Throws(IncorrectOperationException::class)
|
||||||
|
|||||||
Reference in New Issue
Block a user