diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java index a3e2a3e5d9d..34041f0b45b 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/BodyResolver.java @@ -143,6 +143,7 @@ public class BodyResolver { @NotNull final ConstructorDescriptor descriptor, @NotNull JetScope bodyDeclaringScope ) { + AnnotationResolver.resolveAnnotationsArguments(constructor.getModifierList(), trace); assert descriptor.getContainingDeclaration() instanceof ClassDescriptorWithResolutionScopes : "When resolving body it should be class descriptor with resolution scopes"; diff --git a/compiler/testData/diagnostics/tests/secondaryConstructors/ctrsAnnotationResolve.kt b/compiler/testData/diagnostics/tests/secondaryConstructors/ctrsAnnotationResolve.kt new file mode 100644 index 00000000000..4b5246999a9 --- /dev/null +++ b/compiler/testData/diagnostics/tests/secondaryConstructors/ctrsAnnotationResolve.kt @@ -0,0 +1,9 @@ +// !DIAGNOSTICS: -UNUSED_PARAMETER +annotation class Ann1 +annotation class Ann2(val x: Int) + +class A { + Ann1 constructor() {} + Ann2 constructor(x1: Int) {} + Ann2(2) constructor(x1: Int, x2: Int) {} +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/secondaryConstructors/ctrsAnnotationResolve.txt b/compiler/testData/diagnostics/tests/secondaryConstructors/ctrsAnnotationResolve.txt new file mode 100644 index 00000000000..a6ade97ce81 --- /dev/null +++ b/compiler/testData/diagnostics/tests/secondaryConstructors/ctrsAnnotationResolve.txt @@ -0,0 +1,25 @@ +package + +internal final class A { + Ann1() public constructor A() + Ann2() public constructor A(/*0*/ x1: kotlin.Int) + Ann2(x = IntegerValueType(2): IntegerValueType(2)) public constructor A(/*0*/ x1: kotlin.Int, /*1*/ x2: kotlin.Int) + 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 +} + +internal final annotation class Ann1 : kotlin.Annotation { + public constructor Ann1() + 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 +} + +internal final annotation class Ann2 : kotlin.Annotation { + public constructor Ann2(/*0*/ x: kotlin.Int) + internal final val x: kotlin.Int + 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/JetDiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java index 3984702db31..c357feaa9bf 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java @@ -10457,6 +10457,12 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest { doTest(fileName); } + @TestMetadata("ctrsAnnotationResolve.kt") + public void testCtrsAnnotationResolve() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/secondaryConstructors/ctrsAnnotationResolve.kt"); + doTest(fileName); + } + @TestMetadata("cyclicDelegationCalls.kt") public void testCyclicDelegationCalls() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/secondaryConstructors/cyclicDelegationCalls.kt");