Show warning on usages of javaClass<T>() in annotations loaded from Java
This commit is contained in:
+17
@@ -0,0 +1,17 @@
|
||||
// FILE: A.java
|
||||
public @interface A {
|
||||
Class<?>[] value();
|
||||
}
|
||||
|
||||
// FILE: b.kt
|
||||
val jClass = javaClass<String>()
|
||||
A(
|
||||
<!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION, ANNOTATION_PARAMETER_MUST_BE_CLASS_LITERAL!>jClass<!>,
|
||||
<!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>javaClass<Int>()<!>
|
||||
)
|
||||
class MyClass1
|
||||
|
||||
A(
|
||||
<!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>javaClass<<!UNRESOLVED_REFERENCE!>Err<!>>()<!>,
|
||||
<!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>javaClass<String>()<!>
|
||||
) class MyClass2
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
package
|
||||
|
||||
internal val jClass: java.lang.Class<kotlin.String>
|
||||
|
||||
public final annotation class A : kotlin.Annotation {
|
||||
public /*synthesized*/ constructor A(/*0*/ vararg value: java.lang.Class<*> /*kotlin.Array<out java.lang.Class<*>>*/)
|
||||
public constructor A(/*0*/ vararg value: kotlin.reflect.KClass<*> /*kotlin.Array<out kotlin.reflect.KClass<*>>*/)
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
public abstract fun value(): kotlin.Array<kotlin.reflect.KClass<*>>
|
||||
}
|
||||
|
||||
A(value = {javaClass<kotlin.Int>()}: kotlin.Array<out java.lang.Class<*>>) internal final class MyClass1 {
|
||||
public constructor MyClass1()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
A(value = {javaClass<[ERROR : Err]>(), javaClass<kotlin.String>()}: kotlin.Array<out java.lang.Class<*>>) internal final class MyClass2 {
|
||||
public constructor MyClass2()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
// FILE: A.java
|
||||
public @interface A {
|
||||
Class<?>[] value() default {Integer.class};
|
||||
Class<?>[] arg() default {String.class};
|
||||
}
|
||||
|
||||
// FILE: b.kt
|
||||
A(<!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>javaClass<Int>()<!>,
|
||||
<!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>javaClass<Any>()<!>,
|
||||
arg = <!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>array(javaClass<String>(), javaClass<Double>())<!>)
|
||||
class MyClass1
|
||||
|
||||
A(<!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>javaClass<Int>()<!>, <!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>javaClass<Any>()<!>)
|
||||
class MyClass2
|
||||
|
||||
A(arg = <!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>array(javaClass<String>(), javaClass<Double>())<!>)
|
||||
class MyClass3
|
||||
|
||||
A class MyClass4
|
||||
|
||||
A(value = *<!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>array(javaClass<Int>(), javaClass<Any>())<!>,
|
||||
arg = <!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>array(javaClass<String>(), javaClass<Double>())<!>)
|
||||
class MyClass5
|
||||
|
||||
A(value = *<!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>array(javaClass<Int>(), javaClass<Any>())<!>)
|
||||
class MyClass6
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
package
|
||||
|
||||
public final annotation class A : kotlin.Annotation {
|
||||
public /*synthesized*/ constructor A(/*0*/ vararg value: java.lang.Class<*> /*kotlin.Array<out java.lang.Class<*>>*/ = ..., /*1*/ arg: kotlin.Array<out java.lang.Class<*>> = ...)
|
||||
public constructor A(/*0*/ vararg value: kotlin.reflect.KClass<*> /*kotlin.Array<out kotlin.reflect.KClass<*>>*/ = ..., /*1*/ arg: kotlin.Array<out kotlin.reflect.KClass<*>> = ...)
|
||||
public abstract fun arg(): kotlin.Array<kotlin.reflect.KClass<*>>
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
public abstract fun value(): kotlin.Array<kotlin.reflect.KClass<*>>
|
||||
}
|
||||
|
||||
A(arg = {javaClass<kotlin.String>(), javaClass<kotlin.Double>()}: kotlin.Array<java.lang.Class<out kotlin.Comparable<out kotlin.Any?>>>, value = {javaClass<kotlin.Int>(), javaClass<kotlin.Any>()}: kotlin.Array<out java.lang.Class<*>>) internal final class MyClass1 {
|
||||
public constructor MyClass1()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
A(value = {javaClass<kotlin.Int>(), javaClass<kotlin.Any>()}: kotlin.Array<out java.lang.Class<*>>) internal final class MyClass2 {
|
||||
public constructor MyClass2()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
A(arg = {javaClass<kotlin.String>(), javaClass<kotlin.Double>()}: kotlin.Array<java.lang.Class<out kotlin.Comparable<out kotlin.Any?>>>) internal final class MyClass3 {
|
||||
public constructor MyClass3()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
A() internal final class MyClass4 {
|
||||
public constructor MyClass4()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
A(arg = {javaClass<kotlin.String>(), javaClass<kotlin.Double>()}: kotlin.Array<java.lang.Class<out kotlin.Comparable<out kotlin.Any?>>>, value = {javaClass<kotlin.Int>(), javaClass<kotlin.Any>()}: kotlin.Array<java.lang.Class<out kotlin.Any>>) internal final class MyClass5 {
|
||||
public constructor MyClass5()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
A(value = {javaClass<kotlin.Int>(), javaClass<kotlin.Any>()}: kotlin.Array<java.lang.Class<out kotlin.Any>>) internal final class MyClass6 {
|
||||
public constructor MyClass6()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
// FILE: A.java
|
||||
public @interface A {
|
||||
Class<?> value() default Integer.class;
|
||||
Class<?> arg() default String.class;
|
||||
}
|
||||
|
||||
// FILE: b.kt
|
||||
A(<!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>javaClass<Int>()<!>, arg = <!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>javaClass<String>()<!>) class MyClass1
|
||||
A(<!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>javaClass<Int>()<!>) class MyClass2
|
||||
A(arg = <!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>javaClass<String>()<!>) class MyClass3
|
||||
A class MyClass4
|
||||
|
||||
A(value = <!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>javaClass<Int>()<!>, arg = <!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>javaClass<String>()<!>) class MyClass5
|
||||
A(value = <!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>javaClass<Int>()<!>) class MyClass6
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
package
|
||||
|
||||
public final annotation class A : kotlin.Annotation {
|
||||
public /*synthesized*/ constructor A(/*0*/ value: java.lang.Class<*> = ..., /*1*/ arg: java.lang.Class<*> = ...)
|
||||
public constructor A(/*0*/ value: kotlin.reflect.KClass<*> = ..., /*1*/ arg: kotlin.reflect.KClass<*> = ...)
|
||||
public abstract fun arg(): kotlin.reflect.KClass<*>
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
public abstract fun value(): kotlin.reflect.KClass<*>
|
||||
}
|
||||
|
||||
A(arg = javaClass<kotlin.String>(): java.lang.Class<kotlin.String>, value = javaClass<kotlin.Int>(): java.lang.Class<kotlin.Int>) internal final class MyClass1 {
|
||||
public constructor MyClass1()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
A(value = javaClass<kotlin.Int>(): java.lang.Class<kotlin.Int>) internal final class MyClass2 {
|
||||
public constructor MyClass2()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
A(arg = javaClass<kotlin.String>(): java.lang.Class<kotlin.String>) internal final class MyClass3 {
|
||||
public constructor MyClass3()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
A() internal final class MyClass4 {
|
||||
public constructor MyClass4()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
A(arg = javaClass<kotlin.String>(): java.lang.Class<kotlin.String>, value = javaClass<kotlin.Int>(): java.lang.Class<kotlin.Int>) internal final class MyClass5 {
|
||||
public constructor MyClass5()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
A(value = javaClass<kotlin.Int>(): java.lang.Class<kotlin.Int>) internal final class MyClass6 {
|
||||
public constructor MyClass6()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
Reference in New Issue
Block a user