Fixed KT-5247 Java to Kotlin: convert java @interfaces into Kotlin annotation classes

#KT-5247 Fixed
This commit is contained in:
Valentin Kipyatkov
2014-07-18 18:48:04 +04:00
parent d7e857ed0a
commit 3c33b7dcfa
14 changed files with 177 additions and 39 deletions
@@ -0,0 +1,16 @@
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
@interface Anon {
String[] stringArray();
int[] intArray();
// string
String string();
}
@Anon(string = "a", stringArray = { "a", "b" }, intArray = { 1, 2 })
@Target({ElementType.CONSTRUCTOR, ElementType.FIELD})
@interface I {
}
@@ -0,0 +1,9 @@
import java.lang.annotation.ElementType
import java.lang.annotation.Target
annotation class Anon(public val stringArray: Array<String>, public val intArray: IntArray, // string
public val string: String)
Anon(string = "a", stringArray = array("a", "b"), intArray = intArray(1, 2))
Target(ElementType.CONSTRUCTOR, ElementType.FIELD)
annotation class I
@@ -0,0 +1,8 @@
@interface Anon {
String s() default "a";
String[] stringArray() default { "a", "b" };
int[] intArray();
}
@Anon(intArray = {1, 2})
class A{ }
@@ -0,0 +1,4 @@
annotation class Anon(public val s: String = "a", public val stringArray: Array<String> = array("a", "b"), public vararg val intArray: Int)
Anon(intArray = *intArray(1, 2))
class A
@@ -0,0 +1,14 @@
@interface Anon {
String value();
enum E {
A, B
}
E field = E.A;
}
@Anon("a")
interface I {
Anon.E e = Anon.field;
}
@@ -0,0 +1,19 @@
annotation class Anon(public val value: String) {
public enum class E {
A
B
}
class object {
public val field: E = E.A
}
}
Anon("a")
trait I {
class object {
public val e: Anon.E = Anon.field
}
}