diff --git a/compiler/resolution.common.jvm/src/org/jetbrains/kotlin/load/java/structure/impl/classFiles/Types.kt b/compiler/resolution.common.jvm/src/org/jetbrains/kotlin/load/java/structure/impl/classFiles/Types.kt index 419ef1ddb9c..3cc5867245b 100644 --- a/compiler/resolution.common.jvm/src/org/jetbrains/kotlin/load/java/structure/impl/classFiles/Types.kt +++ b/compiler/resolution.common.jvm/src/org/jetbrains/kotlin/load/java/structure/impl/classFiles/Types.kt @@ -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 diff --git a/compiler/testData/codegen/box/javaInterop/javaTypeFromAnotherModuleWithRawTypedWildcardBound.kt b/compiler/testData/codegen/box/javaInterop/javaTypeFromAnotherModuleWithRawTypedWildcardBound.kt index 28af298bbe2..4441185d6ec 100644 --- a/compiler/testData/codegen/box/javaInterop/javaTypeFromAnotherModuleWithRawTypedWildcardBound.kt +++ b/compiler/testData/codegen/box/javaInterop/javaTypeFromAnotherModuleWithRawTypedWildcardBound.kt @@ -1,5 +1,4 @@ // TARGET_BACKEND: JVM_IR -// IGNORE_BACKEND_K2: JVM_IR // ISSUE: KT-64090 // MODULE: lib