Annotation target checking in front-end, a set of tests for different annotation targets, existing test fixes

No checks for erroneous annotations. Additional checks for identifiers.
This commit is contained in:
Mikhail Glukhikh
2015-07-06 20:00:06 +03:00
parent 609d696202
commit 0d2a81f098
82 changed files with 1445 additions and 46 deletions
@@ -1,5 +1,13 @@
package dependency
target(AnnotationTarget.CLASSIFIER, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY,
AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.TYPE)
annotation class A(val s: String)
target(AnnotationTarget.CLASSIFIER, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY,
AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.TYPE)
annotation class B(val i: Int)
target(AnnotationTarget.CLASSIFIER, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY,
AnnotationTarget.VALUE_PARAMETER)
annotation class C
@@ -25,8 +25,13 @@ a public class Annotations private @a constructor(private @a val c1: Int, @a val
fun types(param: @a @b(E.E1) DoubleRange): @a @b(E.E2) Unit {}
}
target(AnnotationTarget.PROPERTY, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.FUNCTION,
AnnotationTarget.CONSTRUCTOR, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER,
AnnotationTarget.TYPE, AnnotationTarget.CLASSIFIER)
annotation class a
annotation class b(val e: E)
target(AnnotationTarget.PROPERTY, AnnotationTarget.FUNCTION, AnnotationTarget.CLASSIFIER,
AnnotationTarget.CONSTRUCTOR, AnnotationTarget.TYPE)
annotation(repeatable = false) class b(val e: E)
enum class E { E1 E2 }