diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java index 006ed5a8543..81df5dba1bf 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java @@ -18549,6 +18549,18 @@ public class FirLightTreeBlackBoxCodegenTestGenerated extends AbstractFirLightTr runTest("compiler/testData/codegen/box/fir/toLong.kt"); } + @Test + @TestMetadata("TypeParameterInNestedClass.kt") + public void testTypeParameterInNestedClass() throws Exception { + runTest("compiler/testData/codegen/box/fir/TypeParameterInNestedClass.kt"); + } + + @Test + @TestMetadata("TypeParameterInNestedClass2.kt") + public void testTypeParameterInNestedClass2() throws Exception { + runTest("compiler/testData/codegen/box/fir/TypeParameterInNestedClass2.kt"); + } + @Test @TestMetadata("unqualifiedEnum.kt") public void testUnqualifiedEnum() throws Exception { diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java index 7433ffe1601..f1ee37b7607 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java @@ -18549,6 +18549,18 @@ public class FirPsiBlackBoxCodegenTestGenerated extends AbstractFirPsiBlackBoxCo runTest("compiler/testData/codegen/box/fir/toLong.kt"); } + @Test + @TestMetadata("TypeParameterInNestedClass.kt") + public void testTypeParameterInNestedClass() throws Exception { + runTest("compiler/testData/codegen/box/fir/TypeParameterInNestedClass.kt"); + } + + @Test + @TestMetadata("TypeParameterInNestedClass2.kt") + public void testTypeParameterInNestedClass2() throws Exception { + runTest("compiler/testData/codegen/box/fir/TypeParameterInNestedClass2.kt"); + } + @Test @TestMetadata("unqualifiedEnum.kt") public void testUnqualifiedEnum() throws Exception { diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirLightTreeJvmIrTextTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirLightTreeJvmIrTextTestGenerated.java index e251a2c6587..f6e918a3221 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirLightTreeJvmIrTextTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirLightTreeJvmIrTextTestGenerated.java @@ -2840,6 +2840,12 @@ public class FirLightTreeJvmIrTextTestGenerated extends AbstractFirLightTreeJvmI runTest("compiler/testData/ir/irText/firProblems/typeParameterFromJavaClass.kt"); } + @Test + @TestMetadata("TypeParameterInNestedClass.kt") + public void testTypeParameterInNestedClass() throws Exception { + runTest("compiler/testData/ir/irText/firProblems/TypeParameterInNestedClass.kt"); + } + @Test @TestMetadata("typeVariableAfterBuildMap.kt") public void testTypeVariableAfterBuildMap() throws Exception { diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirPsiJvmIrTextTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirPsiJvmIrTextTestGenerated.java index 004c2c9388e..5144e35c1c5 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirPsiJvmIrTextTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirPsiJvmIrTextTestGenerated.java @@ -2840,6 +2840,12 @@ public class FirPsiJvmIrTextTestGenerated extends AbstractFirPsiJvmIrTextTest { runTest("compiler/testData/ir/irText/firProblems/typeParameterFromJavaClass.kt"); } + @Test + @TestMetadata("TypeParameterInNestedClass.kt") + public void testTypeParameterInNestedClass() throws Exception { + runTest("compiler/testData/ir/irText/firProblems/TypeParameterInNestedClass.kt"); + } + @Test @TestMetadata("typeVariableAfterBuildMap.kt") public void testTypeVariableAfterBuildMap() throws Exception { diff --git a/compiler/testData/codegen/box/fir/TypeParameterInNestedClass.kt b/compiler/testData/codegen/box/fir/TypeParameterInNestedClass.kt new file mode 100644 index 00000000000..628b1fddaec --- /dev/null +++ b/compiler/testData/codegen/box/fir/TypeParameterInNestedClass.kt @@ -0,0 +1,33 @@ +// WITH_STDLIB +// WITH_COROUTINES +// TARGET_BACKEND: JVM_IR +// IGNORE_BACKEND_K2: JVM_IR +// ISSUE: KT-58008 + +import kotlin.coroutines.* + +fun runBlocking(c: suspend () -> T): T { + var res: T? = null + c.startCoroutine(Continuation(EmptyCoroutineContext) { + res = it.getOrThrow() + }) + return res!! +} + +object Retry { + class Builder( + private val action: suspend () -> B, + ) { + fun foo() = runBlocking { + action.invoke() + } + } + + fun withExponentialBackoff(action: () -> W): Builder { + return Builder(action) + } +} + +fun box(): String { + return Retry.withExponentialBackoff { "OK" }.foo() +} diff --git a/compiler/testData/codegen/box/fir/TypeParameterInNestedClass2.kt b/compiler/testData/codegen/box/fir/TypeParameterInNestedClass2.kt new file mode 100644 index 00000000000..d98afe30e17 --- /dev/null +++ b/compiler/testData/codegen/box/fir/TypeParameterInNestedClass2.kt @@ -0,0 +1,33 @@ +// WITH_STDLIB +// WITH_COROUTINES +// TARGET_BACKEND: JVM_IR +// IGNORE_BACKEND_K2: JVM_IR +// ISSUE: KT-58008 + +import kotlin.coroutines.* + +fun runBlocking(c: suspend () -> T): T { + var res: T? = null + c.startCoroutine(Continuation(EmptyCoroutineContext) { + res = it.getOrThrow() + }) + return res!! +} + +class Owner(val c: C) { + class Builder( + private val action: suspend () -> B, + ) { + fun foo() = runBlocking { + action.invoke() + } + } + + fun withExponentialBackoff(action: () -> W): Builder { + return Builder(action) + } +} + +fun box(): String { + return Owner("").withExponentialBackoff { "OK" }.foo() +} diff --git a/compiler/testData/ir/irText/firProblems/TypeParameterInNestedClass.ir.txt b/compiler/testData/ir/irText/firProblems/TypeParameterInNestedClass.ir.txt new file mode 100644 index 00000000000..29db8904aae --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/TypeParameterInNestedClass.ir.txt @@ -0,0 +1,69 @@ +FILE fqName: fileName:/TypeParameterInNestedClass.kt + CLASS OBJECT name:Retry modality:FINAL visibility:public superTypes:[kotlin.Any] + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Retry + CONSTRUCTOR visibility:private <> () returnType:.Retry [primary] + BLOCK_BODY + DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:Retry modality:FINAL visibility:public superTypes:[kotlin.Any]' + CLASS CLASS name:Builder modality:FINAL visibility:public superTypes:[kotlin.Any] + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Retry.Builder.Retry.Builder> + TYPE_PARAMETER name:B index:0 variance: superTypes:[kotlin.Any?] reified:false + CONSTRUCTOR visibility:public <> (action:kotlin.coroutines.SuspendFunction0.Retry.Builder>) returnType:.Retry.Builder.Retry.Builder> [primary] + VALUE_PARAMETER name:action index:0 type:kotlin.coroutines.SuspendFunction0.Retry.Builder> + BLOCK_BODY + DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Builder modality:FINAL visibility:public superTypes:[kotlin.Any]' + PROPERTY name:action visibility:private modality:FINAL [val] + FIELD PROPERTY_BACKING_FIELD name:action type:kotlin.coroutines.SuspendFunction0.Retry.Builder> visibility:private [final] + EXPRESSION_BODY + GET_VAR 'action: kotlin.coroutines.SuspendFunction0.Retry.Builder> declared in .Retry.Builder.' type=kotlin.coroutines.SuspendFunction0.Retry.Builder> origin=INITIALIZE_PROPERTY_FROM_PARAMETER + FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:private modality:FINAL <> ($this:.Retry.Builder.Retry.Builder>) returnType:kotlin.coroutines.SuspendFunction0.Retry.Builder> + correspondingProperty: PROPERTY name:action visibility:private modality:FINAL [val] + $this: VALUE_PARAMETER name: type:.Retry.Builder.Retry.Builder> + BLOCK_BODY + RETURN type=kotlin.Nothing from='private final fun (): kotlin.coroutines.SuspendFunction0.Retry.Builder> declared in .Retry.Builder' + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:action type:kotlin.coroutines.SuspendFunction0.Retry.Builder> visibility:private [final]' type=kotlin.coroutines.SuspendFunction0.Retry.Builder> origin=null + receiver: GET_VAR ': .Retry.Builder.Retry.Builder> declared in .Retry.Builder.' type=.Retry.Builder.Retry.Builder> origin=null + FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] + overridden: + public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + VALUE_PARAMETER name:other index:0 type:kotlin.Any? + FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] + overridden: + public open fun hashCode (): kotlin.Int declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] + overridden: + public open fun toString (): kotlin.String declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + FUN name:withExponentialBackoff visibility:public modality:FINAL ($this:.Retry, action:kotlin.Function0.Retry.withExponentialBackoff>) returnType:.Retry.Builder.Retry.withExponentialBackoff> + TYPE_PARAMETER name:W index:0 variance: superTypes:[kotlin.Any?] reified:false + $this: VALUE_PARAMETER name: type:.Retry + VALUE_PARAMETER name:action index:0 type:kotlin.Function0.Retry.withExponentialBackoff> + BLOCK_BODY + RETURN type=kotlin.Nothing from='public final fun withExponentialBackoff (action: kotlin.Function0.Retry.withExponentialBackoff>): .Retry.Builder.Retry.withExponentialBackoff> declared in .Retry' + CONSTRUCTOR_CALL 'public constructor (action: kotlin.coroutines.SuspendFunction0.Retry.Builder>) [primary] declared in .Retry.Builder' type=.Retry.Builder.Retry.withExponentialBackoff> origin=null + : W of .Retry.withExponentialBackoff + action: BLOCK type=kotlin.coroutines.SuspendFunction0.Retry.withExponentialBackoff> origin=SUSPEND_CONVERSION + FUN ADAPTER_FOR_SUSPEND_CONVERSION name:suspendConversion0 visibility:local modality:FINAL <> ($receiver:kotlin.Function0.Retry.withExponentialBackoff>) returnType:W of .Retry.withExponentialBackoff [suspend] + $receiver: VALUE_PARAMETER ADAPTER_PARAMETER_FOR_SUSPEND_CONVERSION name:callee type:kotlin.Function0.Retry.withExponentialBackoff> + BLOCK_BODY + RETURN type=kotlin.Nothing from='local final fun suspendConversion0 (): W of .Retry.withExponentialBackoff [suspend] declared in .Retry.withExponentialBackoff' + CALL 'public abstract fun invoke (): R of kotlin.Function0 [operator] declared in kotlin.Function0' type=W of .Retry.withExponentialBackoff origin=null + $this: GET_VAR 'callee: kotlin.Function0.Retry.withExponentialBackoff> declared in .Retry.withExponentialBackoff.suspendConversion0' type=kotlin.Function0.Retry.withExponentialBackoff> origin=null + FUNCTION_REFERENCE 'local final fun suspendConversion0 (): W of .Retry.withExponentialBackoff [suspend] declared in .Retry.withExponentialBackoff' type=kotlin.coroutines.SuspendFunction0.Retry.withExponentialBackoff> origin=SUSPEND_CONVERSION reflectionTarget=null + $receiver: GET_VAR 'action: kotlin.Function0.Retry.withExponentialBackoff> declared in .Retry.withExponentialBackoff' type=kotlin.Function0.Retry.withExponentialBackoff> origin=null + FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] + overridden: + public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + VALUE_PARAMETER name:other index:0 type:kotlin.Any? + FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] + overridden: + public open fun hashCode (): kotlin.Int declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] + overridden: + public open fun toString (): kotlin.String declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any diff --git a/compiler/testData/ir/irText/firProblems/TypeParameterInNestedClass.kt b/compiler/testData/ir/irText/firProblems/TypeParameterInNestedClass.kt new file mode 100644 index 00000000000..aff70e690cc --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/TypeParameterInNestedClass.kt @@ -0,0 +1,11 @@ +// ISSUE: KT-58008 + +object Retry { + class Builder( + private val action: suspend () -> B, + ) + + fun withExponentialBackoff(action: () -> W): Builder { + return Builder(action) + } +} diff --git a/compiler/testData/ir/irText/firProblems/TypeParameterInNestedClass.kt.txt b/compiler/testData/ir/irText/firProblems/TypeParameterInNestedClass.kt.txt new file mode 100644 index 00000000000..20b16312f0b --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/TypeParameterInNestedClass.kt.txt @@ -0,0 +1,31 @@ +object Retry { + private constructor() /* primary */ { + super/*Any*/() + /* () */ + + } + + class Builder { + constructor(action: SuspendFunction0) /* primary */ { + super/*Any*/() + /* () */ + + } + + private val action: SuspendFunction0 + field = action + private get + + } + + fun withExponentialBackoff(action: Function0): Builder { + return Builder(action = { // BLOCK + local suspend fun Function0.suspendConversion0(): W { + return callee.invoke() + } + + action::suspendConversion0 + }) + } + +} diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java index 9d3d02d38b5..a1fa5b5581f 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java @@ -18549,6 +18549,18 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/fir/toLong.kt"); } + @Test + @TestMetadata("TypeParameterInNestedClass.kt") + public void testTypeParameterInNestedClass() throws Exception { + runTest("compiler/testData/codegen/box/fir/TypeParameterInNestedClass.kt"); + } + + @Test + @TestMetadata("TypeParameterInNestedClass2.kt") + public void testTypeParameterInNestedClass2() throws Exception { + runTest("compiler/testData/codegen/box/fir/TypeParameterInNestedClass2.kt"); + } + @Test @TestMetadata("unqualifiedEnum.kt") public void testUnqualifiedEnum() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java index 35b99f6b5a0..fce048c1894 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java @@ -18549,6 +18549,18 @@ public class IrBlackBoxCodegenWithIrInlinerTestGenerated extends AbstractIrBlack runTest("compiler/testData/codegen/box/fir/toLong.kt"); } + @Test + @TestMetadata("TypeParameterInNestedClass.kt") + public void testTypeParameterInNestedClass() throws Exception { + runTest("compiler/testData/codegen/box/fir/TypeParameterInNestedClass.kt"); + } + + @Test + @TestMetadata("TypeParameterInNestedClass2.kt") + public void testTypeParameterInNestedClass2() throws Exception { + runTest("compiler/testData/codegen/box/fir/TypeParameterInNestedClass2.kt"); + } + @Test @TestMetadata("unqualifiedEnum.kt") public void testUnqualifiedEnum() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ir/ClassicJvmIrTextTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ir/ClassicJvmIrTextTestGenerated.java index 2e58d7afd35..b0aa6fcd431 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ir/ClassicJvmIrTextTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ir/ClassicJvmIrTextTestGenerated.java @@ -2840,6 +2840,12 @@ public class ClassicJvmIrTextTestGenerated extends AbstractClassicJvmIrTextTest runTest("compiler/testData/ir/irText/firProblems/typeParameterFromJavaClass.kt"); } + @Test + @TestMetadata("TypeParameterInNestedClass.kt") + public void testTypeParameterInNestedClass() throws Exception { + runTest("compiler/testData/ir/irText/firProblems/TypeParameterInNestedClass.kt"); + } + @Test @TestMetadata("typeVariableAfterBuildMap.kt") public void testTypeVariableAfterBuildMap() throws Exception { diff --git a/compiler/tests-gen/org/jetbrains/kotlin/klib/KlibIrTextTestCaseGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/klib/KlibIrTextTestCaseGenerated.java index 3f9c7dc8eff..f21a16bf7a1 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/klib/KlibIrTextTestCaseGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/klib/KlibIrTextTestCaseGenerated.java @@ -2010,6 +2010,11 @@ public class KlibIrTextTestCaseGenerated extends AbstractKlibIrTextTestCase { runTest("compiler/testData/ir/irText/firProblems/TypeParameterBounds.kt"); } + @TestMetadata("TypeParameterInNestedClass.kt") + public void testTypeParameterInNestedClass() throws Exception { + runTest("compiler/testData/ir/irText/firProblems/TypeParameterInNestedClass.kt"); + } + @TestMetadata("typeVariableAfterBuildMap.kt") public void testTypeVariableAfterBuildMap() throws Exception { runTest("compiler/testData/ir/irText/firProblems/typeVariableAfterBuildMap.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirLightTreeJsIrTextTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirLightTreeJsIrTextTestGenerated.java index 4a10ecb4786..994da3e6e32 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirLightTreeJsIrTextTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirLightTreeJsIrTextTestGenerated.java @@ -2306,6 +2306,12 @@ public class FirLightTreeJsIrTextTestGenerated extends AbstractFirLightTreeJsIrT runTest("compiler/testData/ir/irText/firProblems/TypeParameterBounds.kt"); } + @Test + @TestMetadata("TypeParameterInNestedClass.kt") + public void testTypeParameterInNestedClass() throws Exception { + runTest("compiler/testData/ir/irText/firProblems/TypeParameterInNestedClass.kt"); + } + @Test @TestMetadata("typeVariableAfterBuildMap.kt") public void testTypeVariableAfterBuildMap() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirPsiJsIrTextTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirPsiJsIrTextTestGenerated.java index 3c2e27ab0a5..3998fa46928 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirPsiJsIrTextTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirPsiJsIrTextTestGenerated.java @@ -2306,6 +2306,12 @@ public class FirPsiJsIrTextTestGenerated extends AbstractFirPsiJsIrTextTest { runTest("compiler/testData/ir/irText/firProblems/TypeParameterBounds.kt"); } + @Test + @TestMetadata("TypeParameterInNestedClass.kt") + public void testTypeParameterInNestedClass() throws Exception { + runTest("compiler/testData/ir/irText/firProblems/TypeParameterInNestedClass.kt"); + } + @Test @TestMetadata("typeVariableAfterBuildMap.kt") public void testTypeVariableAfterBuildMap() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/ClassicJsIrTextTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/ClassicJsIrTextTestGenerated.java index 25a27be2b04..ef6b6a82cb2 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/ClassicJsIrTextTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/ClassicJsIrTextTestGenerated.java @@ -2306,6 +2306,12 @@ public class ClassicJsIrTextTestGenerated extends AbstractClassicJsIrTextTest { runTest("compiler/testData/ir/irText/firProblems/TypeParameterBounds.kt"); } + @Test + @TestMetadata("TypeParameterInNestedClass.kt") + public void testTypeParameterInNestedClass() throws Exception { + runTest("compiler/testData/ir/irText/firProblems/TypeParameterInNestedClass.kt"); + } + @Test @TestMetadata("typeVariableAfterBuildMap.kt") public void testTypeVariableAfterBuildMap() throws Exception {