Misc: Support light-classless classes in inheritors search

In particular, support line markers for expect-classes
and navigation to expect-classes from their base class

 #KT-20329 Fixed
This commit is contained in:
Alexey Sedunov
2017-09-26 16:34:01 +03:00
parent 87f3d24f9b
commit 17abce2811
17 changed files with 170 additions and 17 deletions
@@ -91,7 +91,7 @@ abstract class KtLightClassForSourceDeclaration(protected val classOrObject: KtC
private fun getJavaFileStub(): PsiJavaFileStub = getLightClassDataHolder().javaFileStub
protected fun getDescriptor(): ClassDescriptor? {
fun getDescriptor(): ClassDescriptor? {
return LightClassGenerationSupport.getInstance(project).resolveToDescriptor(classOrObject) as? ClassDescriptor
}
@@ -481,13 +481,13 @@ fun getOutermostClassOrObject(classOrObject: KtClassOrObject): KtClassOrObject {
interface LightClassInheritanceHelper {
fun isInheritor(
lightClass: KtLightClassForSourceDeclaration,
lightClass: KtLightClass,
baseClass: PsiClass,
checkDeep: Boolean
): ImpreciseResolveResult
object NoHelp : LightClassInheritanceHelper {
override fun isInheritor(lightClass: KtLightClassForSourceDeclaration, baseClass: PsiClass, checkDeep: Boolean) = UNSURE
override fun isInheritor(lightClass: KtLightClass, baseClass: PsiClass, checkDeep: Boolean) = UNSURE
}
companion object {