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
@@ -0,0 +1,21 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
target(AnnotationTarget.CLASSIFIER) annotation class base
base annotation class derived
base class correct(<!WRONG_ANNOTATION_TARGET!>base<!> val x: Int, <!WRONG_ANNOTATION_TARGET!>base<!> w: <!WRONG_ANNOTATION_TARGET!>@base<!> Int) {
<!WRONG_ANNOTATION_TARGET!>base<!> constructor(): this(0, 0)
}
base enum class My <!WRONG_ANNOTATION_TARGET!>@base<!> constructor() {
<!WRONG_ANNOTATION_TARGET!>@base<!> FIRST,
<!WRONG_ANNOTATION_TARGET!>@base<!> SECOND
}
<!WRONG_ANNOTATION_TARGET!>base<!> fun foo(<!WRONG_ANNOTATION_TARGET!>base<!> y: <!WRONG_ANNOTATION_TARGET!>@base<!> Int): Int {
<!WRONG_ANNOTATION_TARGET!>@base<!> fun bar(<!WRONG_ANNOTATION_TARGET!>base<!> z: <!WRONG_ANNOTATION_TARGET!>@base<!> Int) = z + 1
<!WRONG_ANNOTATION_TARGET!>@base<!> val local = bar(y)
return local
}
<!WRONG_ANNOTATION_TARGET!>base<!> val z = 0