Kapt: Exclude all primitive Java constants from inlining (String is still inlined) (KT-20878)
This commit is contained in:
+40
-1
@@ -1,3 +1,8 @@
|
||||
// EXPECTED_ERROR class B is public, should be declared in a file named B.java
|
||||
// EXPECTED_ERROR class R is public, should be declared in a file named R.java
|
||||
// EXPECTED_ERROR class R is public, should be declared in a file named R.java
|
||||
// EXPECTED_ERROR class R2 is public, should be declared in a file named R2.java
|
||||
|
||||
//FILE: lib/R.java
|
||||
package lib;
|
||||
|
||||
@@ -16,6 +21,15 @@ public class R {
|
||||
}
|
||||
}
|
||||
|
||||
//FILE: app/R2.java
|
||||
package app;
|
||||
|
||||
public class R2 { // For ButterKnife library project support
|
||||
public static class layout {
|
||||
public final static int mainActivity = 100;
|
||||
}
|
||||
}
|
||||
|
||||
//FILE: app/B.java
|
||||
package app;
|
||||
|
||||
@@ -23,6 +37,16 @@ public class B {
|
||||
public static class id {
|
||||
public final static int textView = 200;
|
||||
}
|
||||
|
||||
public final static boolean a1 = false;
|
||||
public final static byte a2 = 1;
|
||||
public final static int a3 = 2;
|
||||
public final static short a4 = 3;
|
||||
public final static long a5 = 4L;
|
||||
public final static char a6 = '5';
|
||||
public final static float a7 = 6.0f;
|
||||
public final static double a8 = 7.0;
|
||||
public final static String a9 = "A";
|
||||
}
|
||||
|
||||
//FILE: test.kt
|
||||
@@ -33,6 +57,17 @@ import lib.R.id.textView
|
||||
|
||||
annotation class Bind(val id: Int)
|
||||
|
||||
annotation class Anno(
|
||||
val a1: Boolean,
|
||||
val a2: Byte,
|
||||
val a3: Int,
|
||||
val a4: Short,
|
||||
val a5: Long,
|
||||
val a6: Char,
|
||||
val a7: Float,
|
||||
val a8: Double,
|
||||
val a9: String)
|
||||
|
||||
class MyActivity {
|
||||
@Bind(LibR.id.textView)
|
||||
fun foo() {}
|
||||
@@ -46,6 +81,10 @@ class MyActivity {
|
||||
@Bind(R.layout.mainActivity)
|
||||
fun foo4() {}
|
||||
|
||||
@Bind(R2.layout.mainActivity)
|
||||
@Anno(a1 = B.a1, a2 = B.a2, a3 = B.a3, a4 = B.a4, a5 = B.a5, a6 = B.a6, a7 = B.a7, a8 = B.a8, a9 = B.a9)
|
||||
fun foo5() {}
|
||||
|
||||
@Bind(B.id.textView)
|
||||
fun notResource() {}
|
||||
fun plainIntConstant() {}
|
||||
}
|
||||
+119
-2
@@ -1,5 +1,117 @@
|
||||
package app;
|
||||
|
||||
public class B {
|
||||
|
||||
public B() {
|
||||
super();
|
||||
}
|
||||
|
||||
public static class id {
|
||||
|
||||
public id() {
|
||||
super();
|
||||
}
|
||||
public static final int textView = 200;
|
||||
}
|
||||
public static final boolean a1 = false;
|
||||
public static final byte a2 = 1;
|
||||
public static final int a3 = 2;
|
||||
public static final short a4 = 3;
|
||||
public static final long a5 = 4L;
|
||||
public static final char a6 = '5';
|
||||
public static final float a7 = 6.0F;
|
||||
public static final double a8 = 7.0;
|
||||
public static final String a9 = "A";
|
||||
}
|
||||
|
||||
////////////////////
|
||||
|
||||
package app;
|
||||
|
||||
public class R2 {
|
||||
|
||||
public R2() {
|
||||
super();
|
||||
}
|
||||
|
||||
public static class layout {
|
||||
|
||||
public layout() {
|
||||
super();
|
||||
}
|
||||
public static final int mainActivity = 100;
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////
|
||||
|
||||
package lib;
|
||||
|
||||
public class R {
|
||||
|
||||
public R() {
|
||||
super();
|
||||
}
|
||||
|
||||
public static class id {
|
||||
|
||||
public id() {
|
||||
super();
|
||||
}
|
||||
public static final int textView = 100;
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////
|
||||
|
||||
package app;
|
||||
|
||||
public class R {
|
||||
|
||||
public R() {
|
||||
super();
|
||||
}
|
||||
|
||||
public static class layout {
|
||||
|
||||
public layout() {
|
||||
super();
|
||||
}
|
||||
public static final int mainActivity = 100;
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////
|
||||
|
||||
package app;
|
||||
|
||||
@kotlin.Metadata()
|
||||
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
|
||||
public abstract @interface Anno {
|
||||
|
||||
public abstract boolean a1();
|
||||
|
||||
public abstract byte a2();
|
||||
|
||||
public abstract int a3();
|
||||
|
||||
public abstract short a4();
|
||||
|
||||
public abstract long a5();
|
||||
|
||||
public abstract char a6();
|
||||
|
||||
public abstract float a7();
|
||||
|
||||
public abstract double a8();
|
||||
|
||||
public abstract java.lang.String a9();
|
||||
}
|
||||
|
||||
////////////////////
|
||||
|
||||
package app;
|
||||
|
||||
@kotlin.Metadata()
|
||||
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
|
||||
public abstract @interface Bind {
|
||||
@@ -30,8 +142,13 @@ public final class MyActivity {
|
||||
public final void foo4() {
|
||||
}
|
||||
|
||||
@Bind(id = 200)
|
||||
public final void notResource() {
|
||||
@Anno(a1 = app.B.a1, a2 = app.B.a2, a3 = app.B.a3, a4 = app.B.a4, a5 = app.B.a5, a6 = app.B.a6, a7 = app.B.a7, a8 = app.B.a8, a9 = "A")
|
||||
@Bind(id = app.R2.layout.mainActivity)
|
||||
public final void foo5() {
|
||||
}
|
||||
|
||||
@Bind(id = app.B.id.textView)
|
||||
public final void plainIntConstant() {
|
||||
}
|
||||
|
||||
public MyActivity() {
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
// EXPECTED_ERROR class J$B is public, should be declared in a file named J$B.java
|
||||
// EXPECTED_ERROR class JavaClass is public, should be declared in a file named JavaClass.java
|
||||
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass {
|
||||
public class Foo {
|
||||
|
||||
@@ -1,3 +1,79 @@
|
||||
public class J$B {
|
||||
|
||||
public J$B() {
|
||||
super();
|
||||
}
|
||||
|
||||
public class C {
|
||||
|
||||
public C() {
|
||||
super();
|
||||
}
|
||||
}
|
||||
|
||||
public class D$E {
|
||||
|
||||
public D$E() {
|
||||
super();
|
||||
}
|
||||
|
||||
class F {
|
||||
|
||||
F() {
|
||||
super();
|
||||
}
|
||||
}
|
||||
|
||||
class F$G {
|
||||
|
||||
F$G() {
|
||||
super();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class D$$E {
|
||||
|
||||
public D$$E() {
|
||||
super();
|
||||
}
|
||||
}
|
||||
|
||||
public class D$$$E {
|
||||
|
||||
public D$$$E() {
|
||||
super();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////
|
||||
|
||||
|
||||
public class JavaClass {
|
||||
|
||||
public JavaClass() {
|
||||
super();
|
||||
}
|
||||
|
||||
public class Foo {
|
||||
|
||||
public Foo() {
|
||||
super();
|
||||
}
|
||||
|
||||
public class Bar {
|
||||
|
||||
public Bar() {
|
||||
super();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////
|
||||
|
||||
|
||||
@kotlin.Metadata()
|
||||
public final class A$B {
|
||||
@org.jetbrains.annotations.NotNull()
|
||||
|
||||
+2
@@ -1,3 +1,5 @@
|
||||
// EXPECTED_ERROR class J$B is public, should be declared in a file named J$B.java
|
||||
|
||||
// FILE: test/JavaClass.java
|
||||
package test;
|
||||
|
||||
|
||||
+78
@@ -1,5 +1,83 @@
|
||||
package test;
|
||||
|
||||
public class J$B {
|
||||
|
||||
public J$B() {
|
||||
super();
|
||||
}
|
||||
|
||||
public class C {
|
||||
|
||||
public C() {
|
||||
super();
|
||||
}
|
||||
}
|
||||
|
||||
public class D$E {
|
||||
|
||||
public D$E() {
|
||||
super();
|
||||
}
|
||||
|
||||
class F {
|
||||
|
||||
F() {
|
||||
super();
|
||||
}
|
||||
}
|
||||
|
||||
class F$G {
|
||||
|
||||
F$G() {
|
||||
super();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class D$$E {
|
||||
|
||||
public D$$E() {
|
||||
super();
|
||||
}
|
||||
}
|
||||
|
||||
public class D$$$E {
|
||||
|
||||
public D$$$E() {
|
||||
super();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////
|
||||
|
||||
package test;
|
||||
|
||||
class JavaClass {
|
||||
|
||||
JavaClass() {
|
||||
super();
|
||||
}
|
||||
|
||||
class Foo {
|
||||
|
||||
Foo() {
|
||||
super();
|
||||
}
|
||||
|
||||
class Bar {
|
||||
|
||||
Bar() {
|
||||
super();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////
|
||||
|
||||
package test;
|
||||
|
||||
@kotlin.Metadata()
|
||||
public final class A$B {
|
||||
@org.jetbrains.annotations.NotNull()
|
||||
|
||||
Reference in New Issue
Block a user