Check annotations on anonymous intializers
#KT-2208 Fixed
This commit is contained in:
@@ -360,11 +360,13 @@ public class BodyResolver {
|
|||||||
if (primaryConstructor != null) {
|
if (primaryConstructor != null) {
|
||||||
for (JetClassInitializer anonymousInitializer : anonymousInitializers) {
|
for (JetClassInitializer anonymousInitializer : anonymousInitializers) {
|
||||||
expressionTypingServices.getType(scopeForInitializers, anonymousInitializer.getBody(), NO_EXPECTED_TYPE, context.getOuterDataFlowInfo(), trace);
|
expressionTypingServices.getType(scopeForInitializers, anonymousInitializer.getBody(), NO_EXPECTED_TYPE, context.getOuterDataFlowInfo(), trace);
|
||||||
|
annotationResolver.resolveAnnotationsWithArguments(scopeForInitializers, anonymousInitializer.getModifierList(), trace);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
for (JetClassInitializer anonymousInitializer : anonymousInitializers) {
|
for (JetClassInitializer anonymousInitializer : anonymousInitializers) {
|
||||||
trace.report(ANONYMOUS_INITIALIZER_IN_TRAIT.on(anonymousInitializer));
|
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");
|
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")
|
@TestMetadata("onLoops.kt")
|
||||||
public void testOnLoops() throws Exception {
|
public void testOnLoops() throws Exception {
|
||||||
doTest("compiler/testData/diagnostics/tests/annotations/onLoops.kt");
|
doTest("compiler/testData/diagnostics/tests/annotations/onLoops.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user