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.utils.isInner
|
||||
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.resolve.diagnostics.ConeUnresolvedError
|
||||
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.types.*
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.StandardClassIds
|
||||
import org.jetbrains.kotlin.renderer.render
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.applyIf
|
||||
|
||||
@@ -257,6 +255,14 @@ internal class ConeTypeIdeRenderer(
|
||||
(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 ->
|
||||
if (index != 0) append(".")
|
||||
append(currentClass.name)
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
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