FE: fix PlainJavaClassifierType.isRaw (take inner classes into account)

#KT-64090 Fixed
This commit is contained in:
Mikhail Glukhikh
2023-12-20 15:36:11 +01:00
committed by Space Team
parent d5b784805b
commit 050d74a22e
2 changed files with 11 additions and 4 deletions
@@ -39,9 +39,17 @@ internal class PlainJavaClassifierType(
private val classifierResolverResult by lazy(LazyThreadSafetyMode.NONE, classifierComputation)
override val classifier get() = classifierResolverResult.classifier
override val isRaw
get() = typeArguments.isEmpty() &&
(classifierResolverResult.classifier as? JavaClass)?.typeParameters?.isNotEmpty() == true
override val isRaw: Boolean
get() {
if (typeArguments.isNotEmpty()) return false
var javaClass = classifierResolverResult.classifier as? JavaClass
while (javaClass != null) {
if (javaClass.typeParameters.isNotEmpty()) return true
if (javaClass.isStatic) return false
javaClass = javaClass.outerClass
}
return false
}
override val classifierQualifiedName: String
get() = classifierResolverResult.qualifiedName
@@ -1,5 +1,4 @@
// TARGET_BACKEND: JVM_IR
// IGNORE_BACKEND_K2: JVM_IR
// ISSUE: KT-64090
// MODULE: lib