diff --git a/compiler/testData/diagnostics/tests/typealias/localTypeAliasConstructor.kt b/compiler/testData/diagnostics/tests/typealias/localTypeAliasConstructor.kt new file mode 100644 index 00000000000..39dfb06c5dc --- /dev/null +++ b/compiler/testData/diagnostics/tests/typealias/localTypeAliasConstructor.kt @@ -0,0 +1,11 @@ +// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER + +class Cell(val x: TC) + +fun id(x: T): T { + typealias C = Cell + class Local(val cell: C) + val cx = C(x) + val c: C = Local(cx).cell + return c.x +} diff --git a/compiler/testData/diagnostics/tests/typealias/localTypeAliasConstructor.txt b/compiler/testData/diagnostics/tests/typealias/localTypeAliasConstructor.txt new file mode 100644 index 00000000000..cc56abd4752 --- /dev/null +++ b/compiler/testData/diagnostics/tests/typealias/localTypeAliasConstructor.txt @@ -0,0 +1,11 @@ +package + +public fun id(/*0*/ x: T): T + +public final class Cell { + public constructor Cell(/*0*/ x: TC) + public final val x: TC + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java index 1b4ff469d14..b8505575af5 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java @@ -19539,6 +19539,12 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest { doTest(fileName); } + @TestMetadata("localTypeAliasConstructor.kt") + public void testLocalTypeAliasConstructor() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/typealias/localTypeAliasConstructor.kt"); + doTest(fileName); + } + @TestMetadata("nested.kt") public void testNested() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/typealias/nested.kt"); diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/TypeAliasConstructorDescriptor.kt b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/TypeAliasConstructorDescriptor.kt index 0b281c7561c..f94c1a48348 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/TypeAliasConstructorDescriptor.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/TypeAliasConstructorDescriptor.kt @@ -95,7 +95,7 @@ class TypeAliasConstructorDescriptorImpl private constructor( FunctionDescriptorImpl.getSubstitutedValueParameters(typeAliasConstructor, valueParameters, substitutor, false) ?: return null - typeAliasConstructor.initialize(valueParameters, visibility, typeAliasDescriptor.typeConstructor.parameters) + typeAliasConstructor.initialize(valueParameters, visibility, typeAliasDescriptor.declaredTypeParameters) typeAliasConstructor.returnType = substitutor.substitute(returnType, Variance.OUT_VARIANCE) ?: return null