override is forbidden inside annotations

This commit is contained in:
Mikhail Glukhikh
2015-10-05 13:57:55 +03:00
committed by Mikhail Glukhikh
parent c07f0e9602
commit 7331eec817
3 changed files with 25 additions and 2 deletions
@@ -92,7 +92,8 @@ public object ModifierCheckerCore {
private val possibleParentTargetMap = mapOf<JetModifierKeywordToken, Set<KotlinTarget>>(
INNER_KEYWORD to EnumSet.of(CLASS_ONLY, INNER_CLASS, LOCAL_CLASS, ENUM_CLASS, ENUM_ENTRY),
OVERRIDE_KEYWORD to EnumSet.of(CLASS, ENUM_ENTRY),
OVERRIDE_KEYWORD to EnumSet.of(CLASS_ONLY, INNER_CLASS, LOCAL_CLASS, OBJECT, OBJECT_LITERAL,
INTERFACE, ENUM_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,
ENUM_CLASS, ENUM_ENTRY, FILE),
@@ -3,4 +3,10 @@ annotation class My(
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>protected<!> val y: Int,
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>internal<!> val z: Int,
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>private<!> val w: Int
)
)
open class Your {
open val x: Int = 0
}
annotation class His(<!WRONG_MODIFIER_CONTAINING_DECLARATION!>override<!> val x: Int): <!SUPERTYPES_FOR_ANNOTATION_CLASS!>Your()<!>
@@ -1,5 +1,13 @@
package
@kotlin.annotation.annotation() public final class His : Your {
public constructor His(/*0*/ x: kotlin.Int)
public open override /*1*/ val x: 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
}
@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
@@ -10,3 +18,11 @@ package
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public open class Your {
public constructor Your()
public open val x: kotlin.Int = 0
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
}