Kapt: Do not inline R.resType.resName constants in annotations (KT-18791)

This commit is contained in:
Yan Zhulanow
2017-08-22 22:17:43 +03:00
parent eba2fdfe89
commit a4f06c9fa8
5 changed files with 181 additions and 11 deletions
+51
View File
@@ -0,0 +1,51 @@
//FILE: lib/R.java
package lib;
public class R {
public static class id {
public final static int textView = 100;
}
}
//FILE: app/R.java
package app;
public class R {
public static class layout {
public final static int mainActivity = 100;
}
}
//FILE: app/B.java
package app;
public class B {
public static class id {
public final static int textView = 200;
}
}
//FILE: test.kt
package app
import lib.R as LibR
import lib.R.id.textView
annotation class Bind(val id: Int)
class MyActivity {
@Bind(LibR.id.textView)
fun foo() {}
@Bind(lib.R.id.textView)
fun foo2() {}
@Bind(app.R.layout.mainActivity)
fun foo3() {}
@Bind(R.layout.mainActivity)
fun foo4() {}
@Bind(B.id.textView)
fun notResource() {}
}
+40
View File
@@ -0,0 +1,40 @@
package app;
@kotlin.Metadata()
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
public abstract @interface Bind {
public abstract int id();
}
////////////////////
package app;
@kotlin.Metadata()
public final class MyActivity {
@Bind(id = lib.R.id.textView)
public final void foo() {
}
@Bind(id = lib.R.id.textView)
public final void foo2() {
}
@Bind(id = app.R.layout.mainActivity)
public final void foo3() {
}
@Bind(id = app.R.layout.mainActivity)
public final void foo4() {
}
@Bind(id = 200)
public final void notResource() {
}
public MyActivity() {
super();
}
}