Check annotations on anonymous intializers

#KT-2208 Fixed
This commit is contained in:
Natalia Ukhorskaya
2013-12-18 18:22:01 +04:00
parent 359f2ddbda
commit 513a59d552
3 changed files with 22 additions and 0 deletions
@@ -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);
}
}
}
@@ -0,0 +1,15 @@
class A {
ann {}
[ann] {}
<!UNRESOLVED_REFERENCE!>aaa<!> {}
[<!UNRESOLVED_REFERENCE!>aaa<!>] {}
}
trait T {
<!ANONYMOUS_INITIALIZER_IN_TRAIT!>ann {}<!>
<!ANONYMOUS_INITIALIZER_IN_TRAIT!>[ann] {}<!>
<!ANONYMOUS_INITIALIZER_IN_TRAIT!><!UNRESOLVED_REFERENCE!>aaa<!> {}<!>
<!ANONYMOUS_INITIALIZER_IN_TRAIT!>[<!UNRESOLVED_REFERENCE!>aaa<!>] {}<!>
}
annotation class ann
@@ -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");