diff --git a/compiler/fir/fir2ir/tests/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java index ec88541baca..828dda1bca5 100644 --- a/compiler/fir/fir2ir/tests/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java @@ -14130,6 +14130,11 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/innerNested/innerGenericClassFromJava.kt"); } + @TestMetadata("innerImplicitParameter.kt") + public void testInnerImplicitParameter() throws Exception { + runTest("compiler/testData/codegen/box/innerNested/innerImplicitParameter.kt"); + } + @TestMetadata("innerJavaClass.kt") public void testInnerJavaClass() throws Exception { runTest("compiler/testData/codegen/box/innerNested/innerJavaClass.kt"); diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/IrTypeSystemContext.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/IrTypeSystemContext.kt index a9e814c3af5..644a4ac6687 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/IrTypeSystemContext.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/IrTypeSystemContext.kt @@ -112,7 +112,7 @@ interface IrTypeSystemContext : TypeSystemContext, TypeSystemCommonSuperTypesCon private fun getTypeParameters(typeConstructor: TypeConstructorMarker): List { return when (typeConstructor) { is IrTypeParameterSymbol -> emptyList() - is IrClassSymbol -> typeConstructor.owner.typeParameters + is IrClassSymbol -> extractTypeParameters(typeConstructor.owner) else -> error("unsupported type constructor") } } diff --git a/compiler/testData/codegen/box/innerNested/innerImplicitParameter.kt b/compiler/testData/codegen/box/innerNested/innerImplicitParameter.kt new file mode 100644 index 00000000000..2a1e6d64c0e --- /dev/null +++ b/compiler/testData/codegen/box/innerNested/innerImplicitParameter.kt @@ -0,0 +1,11 @@ +open class C { + inner class A(val x: T?, val y: U) + + class D : C() { + fun f() = A(null, "OK") + } +} + +fun box(): String { + return C.D().f().y +} diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java index e8b5caa796b..2e1131d7b16 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java @@ -15350,6 +15350,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/innerNested/innerGenericClassFromJava.kt"); } + @TestMetadata("innerImplicitParameter.kt") + public void testInnerImplicitParameter() throws Exception { + runTest("compiler/testData/codegen/box/innerNested/innerImplicitParameter.kt"); + } + @TestMetadata("innerJavaClass.kt") public void testInnerJavaClass() throws Exception { runTest("compiler/testData/codegen/box/innerNested/innerJavaClass.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index 3856df07eb2..43a3e3ecffd 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -15350,6 +15350,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/innerNested/innerGenericClassFromJava.kt"); } + @TestMetadata("innerImplicitParameter.kt") + public void testInnerImplicitParameter() throws Exception { + runTest("compiler/testData/codegen/box/innerNested/innerImplicitParameter.kt"); + } + @TestMetadata("innerJavaClass.kt") public void testInnerJavaClass() throws Exception { runTest("compiler/testData/codegen/box/innerNested/innerJavaClass.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java index 71b4434fe32..4a22ed66957 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java @@ -14130,6 +14130,11 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/innerNested/innerGenericClassFromJava.kt"); } + @TestMetadata("innerImplicitParameter.kt") + public void testInnerImplicitParameter() throws Exception { + runTest("compiler/testData/codegen/box/innerNested/innerImplicitParameter.kt"); + } + @TestMetadata("innerJavaClass.kt") public void testInnerJavaClass() throws Exception { runTest("compiler/testData/codegen/box/innerNested/innerJavaClass.kt"); diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java index 758ab48d966..da3534e91a1 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java @@ -12285,6 +12285,11 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes runTest("compiler/testData/codegen/box/innerNested/innerGeneric.kt"); } + @TestMetadata("innerImplicitParameter.kt") + public void testInnerImplicitParameter() throws Exception { + runTest("compiler/testData/codegen/box/innerNested/innerImplicitParameter.kt"); + } + @TestMetadata("innerLabeledThis.kt") public void testInnerLabeledThis() throws Exception { runTest("compiler/testData/codegen/box/innerNested/innerLabeledThis.kt"); diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java index 25c918e63df..472d939de6c 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java @@ -12295,6 +12295,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/innerNested/innerGeneric.kt"); } + @TestMetadata("innerImplicitParameter.kt") + public void testInnerImplicitParameter() throws Exception { + runTest("compiler/testData/codegen/box/innerNested/innerImplicitParameter.kt"); + } + @TestMetadata("innerLabeledThis.kt") public void testInnerLabeledThis() throws Exception { runTest("compiler/testData/codegen/box/innerNested/innerLabeledThis.kt"); diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java index 7570eacdbb1..1ffed91de62 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java @@ -12360,6 +12360,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/innerNested/innerGeneric.kt"); } + @TestMetadata("innerImplicitParameter.kt") + public void testInnerImplicitParameter() throws Exception { + runTest("compiler/testData/codegen/box/innerNested/innerImplicitParameter.kt"); + } + @TestMetadata("innerLabeledThis.kt") public void testInnerLabeledThis() throws Exception { runTest("compiler/testData/codegen/box/innerNested/innerLabeledThis.kt");