Fix rewrite for ANNOTATION slice (EA-49336)

This commit is contained in:
Nikolay Krasko
2013-09-10 18:27:25 +04:00
parent 8c53d19452
commit 08b8f56740
12 changed files with 106 additions and 19 deletions
@@ -0,0 +1,10 @@
annotation class A1
annotation class A2(val some: Int = 12)
class TopLevelClass<<!UNSUPPORTED!>A1<!> <!UNSUPPORTED!>A2(3)<!> <!UNSUPPORTED!>A2<!> <!UNSUPPORTED!>A1(12)<!> <!UNSUPPORTED!>A2("Test")<!> T> {
class InnerClass<<!UNSUPPORTED!>A1<!> <!UNSUPPORTED!>A2(3)<!> <!UNSUPPORTED!>A2<!> <!UNSUPPORTED!>A1(12)<!> <!UNSUPPORTED!>A2("Test")<!> T> {
fun test() {
class InFun<<!UNSUPPORTED!>A1<!> <!UNSUPPORTED!>A2(3)<!> <!UNSUPPORTED!>A2<!> <!UNSUPPORTED!>A1(12)<!> <!UNSUPPORTED!>A2("Test")<!> T>
}
}
}
@@ -0,0 +1,12 @@
annotation class A1
annotation class A2(val some: Int = 12)
fun <<!UNSUPPORTED!>A1<!> <!UNSUPPORTED!>A2(3)<!> <!UNSUPPORTED!>A2<!> <!UNSUPPORTED!>A1(12)<!> <!UNSUPPORTED!>A2("Test")<!> T> topFun() = 12
class SomeClass {
fun <<!UNSUPPORTED!>A1<!> <!UNSUPPORTED!>A2(3)<!> <!UNSUPPORTED!>A2<!> <!UNSUPPORTED!>A1(12)<!> <!UNSUPPORTED!>A2("Test")<!> T> method() = 12
fun foo() {
fun <<!UNSUPPORTED!>A1<!> <!UNSUPPORTED!>A2(3)<!> <!UNSUPPORTED!>A2<!> <!UNSUPPORTED!>A1(12)<!> <!UNSUPPORTED!>A2("Test")<!> T> innerFun() = 12
}
}
@@ -0,0 +1,8 @@
annotation class A1
annotation class A2(val some: Int = 12)
val <<!UNSUPPORTED!>A1<!> <!UNSUPPORTED!>A2(3)<!> <!UNSUPPORTED!>A2<!> <!UNSUPPORTED!>A1(12)<!> <!UNSUPPORTED!>A2("Test")<!> T> topProp = 12
class SomeClass {
val <<!UNSUPPORTED!>A1<!> <!UNSUPPORTED!>A2(3)<!> <!UNSUPPORTED!>A2<!> <!UNSUPPORTED!>A1(12)<!> <!UNSUPPORTED!>A2("Test")<!> T> field = 12
}
@@ -0,0 +1,9 @@
package test
// Checks that there is no rewrite error at ANNOTATION slice because of resolving annotations for object in lazy resolve and resolving
// object as property (method tries to resolve annotations too).
BadAnnotation
object SomeObject
val some = SomeObject
@@ -0,0 +1,8 @@
package test
[ERROR : Unresolved annotation type]() internal val SomeObject: test.SomeObject
internal val some: test.SomeObject
[ERROR : Unresolved annotation type]() internal object SomeObject {
/*primary*/ private constructor SomeObject()
}