"annotation" is now parsed as an identifier. It is no longer a soft keyword.

Sometimes it's allowed to parse "annotation" unescaped even if other annotations must be escaped.
A set of annotations and their options tests.
A swarm of existing tests fixed (mostly kotlin.annotation.annotation() added to txt-files).
STUB_VERSION increased. Some quick fixes slightly changed.
This commit is contained in:
Mikhail Glukhikh
2015-06-26 16:30:20 +03:00
parent 7a6e5f66bd
commit 1eac4d67de
231 changed files with 1915 additions and 334 deletions
@@ -0,0 +1,17 @@
// Annotations used for annotations :)
enum class Target {
CLASSIFIER,
FUNCTION
}
target(Target.CLASSIFIER)
public annotation class target(vararg val allowedTargets: Target)
target(Target.CLASSIFIER)
public annotation(AnnotationRetention.SOURCE) class annotation(
val retention: AnnotationRetention = AnnotationRetention.RUNTIME,
val repeatable: Boolean = false
)
annotation class some
@@ -0,0 +1,59 @@
package
internal final enum class Target : kotlin.Enum<Target> {
public enum entry CLASSIFIER : Target {
private constructor CLASSIFIER()
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: Target): kotlin.Int
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final override /*1*/ /*fake_override*/ fun name(): kotlin.String
public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public enum entry FUNCTION : Target {
private constructor FUNCTION()
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: Target): kotlin.Int
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final override /*1*/ /*fake_override*/ fun name(): kotlin.String
public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
private constructor Target()
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: Target): kotlin.Int
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final override /*1*/ /*fake_override*/ fun name(): kotlin.String
public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
// Static members
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): Target
public final /*synthesized*/ fun values(): kotlin.Array<Target>
}
target(allowedTargets = {Target.CLASSIFIER}) annotation(retention = AnnotationRetention.SOURCE) public final annotation class annotation : kotlin.Annotation {
public constructor annotation(/*0*/ retention: kotlin.annotation.AnnotationRetention = ..., /*1*/ repeatable: kotlin.Boolean = ...)
internal final val repeatable: kotlin.Boolean
internal final val retention: kotlin.annotation.AnnotationRetention
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
}
annotation() internal final annotation class some : kotlin.Annotation {
public constructor some()
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
}
target(allowedTargets = {Target.CLASSIFIER}) annotation() public final annotation class target : kotlin.Annotation {
public constructor target(/*0*/ vararg allowedTargets: Target /*kotlin.Array<out Target>*/)
internal final val allowedTargets: kotlin.Array<out Target>
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
}
@@ -0,0 +1,14 @@
class Annotation(val x: Int) {
fun baz() {}
fun bar() = x
}
fun foo(annotation: Annotation): Int {
if (annotation.bar() == 0) {
annotation.baz()
return 0
}
else {
return -1
}
}
@@ -0,0 +1,13 @@
package
internal fun foo(/*0*/ annotation: Annotation): kotlin.Int
internal final class Annotation {
public constructor Annotation(/*0*/ x: kotlin.Int)
internal final val x: kotlin.Int
internal final fun bar(): kotlin.Int
internal final fun baz(): kotlin.Unit
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
}
@@ -0,0 +1,10 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE
class Annotation {
fun setProblemGroup() {}
fun getQuickFixes() = 0
}
fun registerQuickFix(annotation: Annotation) {
annotation.setProblemGroup()
val fixes = annotation.getQuickFixes()
}
@@ -0,0 +1,12 @@
package
internal fun registerQuickFix(/*0*/ annotation: Annotation): kotlin.Unit
internal final class Annotation {
public constructor Annotation()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
internal final fun getQuickFixes(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
internal final fun setProblemGroup(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -0,0 +1,3 @@
annotation() class emptyBrackets
emptyBrackets class base
@@ -0,0 +1,15 @@
package
emptyBrackets() internal final class base {
public constructor base()
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() internal final annotation class emptyBrackets : kotlin.Annotation {
public constructor emptyBrackets()
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
}
@@ -0,0 +1,3 @@
annotation(repeatable = true) class repann
repann repann class DoubleAnnotated
@@ -0,0 +1,15 @@
package
repann() repann() internal final class DoubleAnnotated {
public constructor DoubleAnnotated()
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(repeatable = true) internal final annotation class repann : kotlin.Annotation {
public constructor repann()
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
}
@@ -0,0 +1,3 @@
annotation(AnnotationRetention.SOURCE) class sourceann
sourceann class AnnotatedAtSource
@@ -0,0 +1,15 @@
package
sourceann() internal final class AnnotatedAtSource {
public constructor AnnotatedAtSource()
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(retention = AnnotationRetention.SOURCE) internal final annotation class sourceann : kotlin.Annotation {
public constructor sourceann()
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
}
@@ -0,0 +1,5 @@
target(AnnotationTarget.CLASSIFIER)
annotation class base
base data class My
@@ -0,0 +1,16 @@
package
base() kotlin.data() internal final class My {
public constructor My()
public final /*synthesized*/ fun copy(): My
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.target(allowedTargets = {AnnotationTarget.CLASSIFIER}) kotlin.annotation.annotation() internal final annotation class base : kotlin.Annotation {
public constructor base()
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
}