diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BodyResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BodyResolver.java index b6c3c32ab55..d852eac0379 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BodyResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BodyResolver.java @@ -360,11 +360,13 @@ public class BodyResolver { if (primaryConstructor != null) { for (JetClassInitializer anonymousInitializer : anonymousInitializers) { expressionTypingServices.getType(scopeForInitializers, anonymousInitializer.getBody(), NO_EXPECTED_TYPE, context.getOuterDataFlowInfo(), trace); + annotationResolver.resolveAnnotationsWithArguments(scopeForInitializers, anonymousInitializer.getModifierList(), trace); } } else { for (JetClassInitializer anonymousInitializer : anonymousInitializers) { trace.report(ANONYMOUS_INITIALIZER_IN_TRAIT.on(anonymousInitializer)); + annotationResolver.resolveAnnotationsWithArguments(scopeForInitializers, anonymousInitializer.getModifierList(), trace); } } } diff --git a/compiler/testData/diagnostics/tests/annotations/onInitializer.kt b/compiler/testData/diagnostics/tests/annotations/onInitializer.kt new file mode 100644 index 00000000000..919c87fdf14 --- /dev/null +++ b/compiler/testData/diagnostics/tests/annotations/onInitializer.kt @@ -0,0 +1,15 @@ +class A { + ann {} + [ann] {} + aaa {} + [aaa] {} +} + +trait T { + ann {} + [ann] {} + aaa {} + [aaa] {} +} + +annotation class ann \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java index 227a21b6519..c9cf1490751 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java @@ -620,6 +620,11 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest { doTest("compiler/testData/diagnostics/tests/annotations/onExpression.kt"); } + @TestMetadata("onInitializer.kt") + public void testOnInitializer() throws Exception { + doTest("compiler/testData/diagnostics/tests/annotations/onInitializer.kt"); + } + @TestMetadata("onLoops.kt") public void testOnLoops() throws Exception { doTest("compiler/testData/diagnostics/tests/annotations/onLoops.kt");