| // TARGET_BACKEND: JVM |
| |
| // WITH_STDLIB |
| // FILE: Test.java |
| |
| import java.lang.annotation.Annotation; |
| |
| class Test { |
| |
| public static String test1() throws NoSuchMethodException { |
| Annotation[] test1s = A.class.getMethod("test1").getAnnotations(); |
| for (Annotation test : test1s) { |
| String name = test.toString(); |
| if (name.contains("testAnnotation")) { |
| return "OK"; |
| } |
| } |
| return "fail"; |
| } |
| |
| public static String test2() throws NoSuchMethodException { |
| Annotation[] test2s = B.class.getMethod("test1").getAnnotations(); |
| for (Annotation test : test2s) { |
| String name = test.toString(); |
| if (name.contains("testAnnotation")) { |
| return "OK"; |
| } |
| } |
| return "fail"; |
| } |
| |
| } |
| |
| // FILE: test.kt |
| |
| @Retention(AnnotationRetention.RUNTIME) |
| annotation class testAnnotation |
| |
| class A { |
| |
| companion object { |
| val b: String = "OK" |
| |
| @JvmStatic @testAnnotation fun test1() = b |
| } |
| } |
| |
| object B { |
| val b: String = "OK" |
| |
| @JvmStatic @testAnnotation fun test1() = b |
| } |
| |
| fun box(): String { |
| if (Test.test1() != "OK") return "fail 1" |
| |
| if (Test.test2() != "OK") return "fail 2" |
| |
| return "OK" |
| } |