FIR analysis API: fix rendering of Java-based types
This commit is contained in:
+8
-2
@@ -13,7 +13,6 @@ import org.jetbrains.kotlin.fir.containingClassForLocal
|
|||||||
import org.jetbrains.kotlin.fir.declarations.*
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.isInner
|
import org.jetbrains.kotlin.fir.declarations.utils.isInner
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.isLocal
|
import org.jetbrains.kotlin.fir.declarations.utils.isLocal
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
|
||||||
import org.jetbrains.kotlin.fir.renderWithType
|
import org.jetbrains.kotlin.fir.renderWithType
|
||||||
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeUnresolvedError
|
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeUnresolvedError
|
||||||
import org.jetbrains.kotlin.fir.resolve.toFirRegularClass
|
import org.jetbrains.kotlin.fir.resolve.toFirRegularClass
|
||||||
@@ -22,7 +21,6 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
|||||||
import org.jetbrains.kotlin.fir.symbols.impl.LookupTagInternals
|
import org.jetbrains.kotlin.fir.symbols.impl.LookupTagInternals
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.StandardClassIds
|
|
||||||
import org.jetbrains.kotlin.renderer.render
|
import org.jetbrains.kotlin.renderer.render
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.applyIf
|
import org.jetbrains.kotlin.utils.addToStdlib.applyIf
|
||||||
|
|
||||||
@@ -257,6 +255,14 @@ internal class ConeTypeIdeRenderer(
|
|||||||
(designation[index + 1] as? FirRegularClass)?.isInner == true
|
(designation[index + 1] as? FirRegularClass)?.isInner == true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val classParentFqName = classId.relativeClassName.parent()
|
||||||
|
if (!classParentFqName.isRoot && designation.size == 1) {
|
||||||
|
// This code is added for a case we can't build designation (e.g. nested Java class),
|
||||||
|
// but still wish to render full class name
|
||||||
|
append(classParentFqName)
|
||||||
|
append(".")
|
||||||
|
}
|
||||||
|
|
||||||
designation.filterIsInstance<FirRegularClass>().forEachIndexed { index, currentClass ->
|
designation.filterIsInstance<FirRegularClass>().forEachIndexed { index, currentClass ->
|
||||||
if (index != 0) append(".")
|
if (index != 0) append(".")
|
||||||
append(currentClass.name)
|
append(currentClass.name)
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
Resolved to:
|
Resolved to:
|
||||||
0: (in JavaTest.SomeJavaClass) open fun setListener(listener: SAMInterface!)
|
0: (in JavaTest.SomeJavaClass) open fun setListener(listener: JavaTest.SAMInterface!)
|
||||||
Reference in New Issue
Block a user