From 513a59d55227a84d2ef6785c9eec700ad023e080 Mon Sep 17 00:00:00 2001 From: Natalia Ukhorskaya Date: Wed, 18 Dec 2013 18:22:01 +0400 Subject: [PATCH] Check annotations on anonymous intializers #KT-2208 Fixed --- .../jetbrains/jet/lang/resolve/BodyResolver.java | 2 ++ .../tests/annotations/onInitializer.kt | 15 +++++++++++++++ .../jet/checkers/JetDiagnosticsTestGenerated.java | 5 +++++ 3 files changed, 22 insertions(+) create mode 100644 compiler/testData/diagnostics/tests/annotations/onInitializer.kt 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");