[KAPT] Keep constant references in annotations with array values
#KT-29929 Fixed
This commit is contained in:
committed by
TeamCityServer
parent
9e9450caa2
commit
8071a1e246
+23
-1
@@ -52,6 +52,10 @@ import lib.R.id.textView
|
||||
|
||||
annotation class Bind(val id: Int)
|
||||
|
||||
annotation class MultiValue(val ids: IntArray)
|
||||
annotation class MultiValueString(val ids: Array<String>)
|
||||
annotation class MultiValueByte(val ids: ByteArray)
|
||||
|
||||
@Target(AnnotationTarget.FIELD)
|
||||
annotation class BindField(val id: Int)
|
||||
|
||||
@@ -111,6 +115,24 @@ class MyActivity {
|
||||
@Bind(B.id.textView)
|
||||
fun plainIntConstant() {}
|
||||
|
||||
@MultiValue(ids = [])
|
||||
fun multi0() {}
|
||||
|
||||
@MultiValue(ids = [B.id.textView])
|
||||
fun multi1() {}
|
||||
|
||||
@MultiValue(ids = [B.id.textView, B.a3])
|
||||
fun multi2() {}
|
||||
|
||||
@MultiValue(ids = intArrayOf(B.id.textView, B.a3))
|
||||
fun multi3() {}
|
||||
|
||||
@MultiValueString(ids = arrayOf(B.a9))
|
||||
fun multi4() {}
|
||||
|
||||
@MultiValueByte(ids = byteArrayOf(B.a2))
|
||||
fun multi5() {}
|
||||
|
||||
const val propA = B.id.textView
|
||||
val propB = B.id.textView
|
||||
var propC = B.id.textView
|
||||
@@ -129,4 +151,4 @@ object JJ {
|
||||
// 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
|
||||
// EXPECTED_ERROR class R2 is public, should be declared in a file named R2.java
|
||||
+63
@@ -115,6 +115,45 @@ package app;
|
||||
|
||||
import java.lang.System;
|
||||
|
||||
@kotlin.Metadata()
|
||||
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
|
||||
public abstract @interface MultiValue {
|
||||
|
||||
public abstract int[] ids();
|
||||
}
|
||||
|
||||
////////////////////
|
||||
|
||||
package app;
|
||||
|
||||
import java.lang.System;
|
||||
|
||||
@kotlin.Metadata()
|
||||
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
|
||||
public abstract @interface MultiValueByte {
|
||||
|
||||
public abstract byte[] ids();
|
||||
}
|
||||
|
||||
////////////////////
|
||||
|
||||
package app;
|
||||
|
||||
import java.lang.System;
|
||||
|
||||
@kotlin.Metadata()
|
||||
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
|
||||
public abstract @interface MultiValueString {
|
||||
|
||||
public abstract java.lang.String[] ids();
|
||||
}
|
||||
|
||||
////////////////////
|
||||
|
||||
package app;
|
||||
|
||||
import java.lang.System;
|
||||
|
||||
@kotlin.Metadata()
|
||||
public final class MyActivity {
|
||||
@BindField(id = lib.R.id.textView)
|
||||
@@ -222,6 +261,30 @@ public final class MyActivity {
|
||||
public final void plainIntConstant() {
|
||||
}
|
||||
|
||||
@MultiValue(ids = {})
|
||||
public final void multi0() {
|
||||
}
|
||||
|
||||
@MultiValue(ids = {app.B.id.textView})
|
||||
public final void multi1() {
|
||||
}
|
||||
|
||||
@MultiValue(ids = {app.B.id.textView, app.B.a3})
|
||||
public final void multi2() {
|
||||
}
|
||||
|
||||
@MultiValue(ids = {app.B.id.textView, app.B.a3})
|
||||
public final void multi3() {
|
||||
}
|
||||
|
||||
@MultiValueString(ids = {"A"})
|
||||
public final void multi4() {
|
||||
}
|
||||
|
||||
@MultiValueByte(ids = {app.B.a2})
|
||||
public final void multi5() {
|
||||
}
|
||||
|
||||
public final int getPropB() {
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user