Check annotations on anonymous intializers
#KT-2208 Fixed
This commit is contained in:
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user