private / internal / protected are forbidden in annotations

This commit is contained in:
Mikhail Glukhikh
2015-10-05 12:18:21 +03:00
committed by Mikhail Glukhikh
parent cba6870f52
commit c07f0e9602
4 changed files with 27 additions and 1 deletions
@@ -95,7 +95,9 @@ public object ModifierCheckerCore {
OVERRIDE_KEYWORD to EnumSet.of(CLASS, ENUM_ENTRY),
PROTECTED_KEYWORD to EnumSet.of(CLASS_ONLY, INNER_CLASS, LOCAL_CLASS, ENUM_CLASS, OBJECT),
INTERNAL_KEYWORD to EnumSet.of(CLASS_ONLY, INNER_CLASS, LOCAL_CLASS, OBJECT, OBJECT_LITERAL,
ANNOTATION_CLASS, ENUM_CLASS, ENUM_ENTRY, FILE),
ENUM_CLASS, ENUM_ENTRY, FILE),
PRIVATE_KEYWORD to EnumSet.of(CLASS_ONLY, INNER_CLASS, LOCAL_CLASS, OBJECT, OBJECT_LITERAL,
INTERFACE, ENUM_CLASS, ENUM_ENTRY, FILE),
COMPANION_KEYWORD to EnumSet.of(CLASS_ONLY, ENUM_CLASS, INTERFACE)
)
@@ -0,0 +1,6 @@
annotation class My(
public val x: Int,
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>protected<!> val y: Int,
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>internal<!> val z: Int,
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>private<!> val w: Int
)
@@ -0,0 +1,12 @@
package
@kotlin.annotation.annotation() public final class My : kotlin.Annotation {
public constructor My(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.Int, /*2*/ z: kotlin.Int, /*3*/ w: kotlin.Int)
private final val w: kotlin.Int
public final val x: kotlin.Int
protected final val y: kotlin.Int
internal final val z: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -9156,6 +9156,12 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/diagnostics/tests/modifiers"), Pattern.compile("^(.+)\\.kt$"), true);
}
@TestMetadata("annotations.kt")
public void testAnnotations() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/modifiers/annotations.kt");
doTest(fileName);
}
@TestMetadata("defaultModifier.kt")
public void testDefaultModifier() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/modifiers/defaultModifier.kt");