Kapt: Always use raw types for annotation parameter types (KT-30346)
This commit is contained in:
+9
-1
@@ -818,7 +818,15 @@ class ClassFileToSourceStubConverter(val kaptContext: KaptContextForStubGenerati
|
|||||||
else -> null
|
else -> null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ifNonError = { genericSignature.returnType }
|
ifNonError = ifNonError@ {
|
||||||
|
if (descriptor is PropertyDescriptor) {
|
||||||
|
val containingClass = descriptor.containingDeclaration
|
||||||
|
if (containingClass is ClassDescriptor && containingClass.kind == ClassKind.ANNOTATION_CLASS) {
|
||||||
|
return@ifNonError jcReturnType
|
||||||
|
}
|
||||||
|
}
|
||||||
|
genericSignature.returnType
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
return Pair(genericSignature, returnType)
|
return Pair(genericSignature, returnType)
|
||||||
|
|||||||
+5
@@ -354,6 +354,11 @@ public class ClassFileToSourceStubConverterTestGenerated extends AbstractClassFi
|
|||||||
runTest("plugins/kapt3/kapt3-compiler/testData/converter/nonExistentClassWIthoutCorrection.kt");
|
runTest("plugins/kapt3/kapt3-compiler/testData/converter/nonExistentClassWIthoutCorrection.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("outProjection.kt")
|
||||||
|
public void testOutProjection() throws Exception {
|
||||||
|
runTest("plugins/kapt3/kapt3-compiler/testData/converter/outProjection.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("primitiveTypes.kt")
|
@TestMetadata("primitiveTypes.kt")
|
||||||
public void testPrimitiveTypes() throws Exception {
|
public void testPrimitiveTypes() throws Exception {
|
||||||
runTest("plugins/kapt3/kapt3-compiler/testData/converter/primitiveTypes.kt");
|
runTest("plugins/kapt3/kapt3-compiler/testData/converter/primitiveTypes.kt");
|
||||||
|
|||||||
@@ -28,9 +28,9 @@ public abstract @interface Anno2 {
|
|||||||
|
|
||||||
public abstract Colors[] colors() default {Colors.BLACK, Colors.WHITE};
|
public abstract Colors[] colors() default {Colors.BLACK, Colors.WHITE};
|
||||||
|
|
||||||
public abstract java.lang.Class<?> clazz();
|
public abstract java.lang.Class clazz();
|
||||||
|
|
||||||
public abstract java.lang.Class<?>[] classes();
|
public abstract java.lang.Class[] classes();
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////
|
////////////////////
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import kotlin.reflect.KClass;
|
|||||||
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
|
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
|
||||||
public abstract @interface Anno {
|
public abstract @interface Anno {
|
||||||
|
|
||||||
public abstract java.lang.Class<java.lang.Object> a();
|
public abstract java.lang.Class a();
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////
|
////////////////////
|
||||||
|
|||||||
@@ -159,7 +159,7 @@ public abstract interface IFoo {
|
|||||||
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
|
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
|
||||||
public static abstract @interface Anno {
|
public static abstract @interface Anno {
|
||||||
|
|
||||||
public abstract java.lang.Class<?>[] value();
|
public abstract java.lang.Class[] value();
|
||||||
}
|
}
|
||||||
|
|
||||||
@kotlin.Metadata()
|
@kotlin.Metadata()
|
||||||
|
|||||||
+1
-1
@@ -164,7 +164,7 @@ public abstract interface IFoo {
|
|||||||
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
|
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
|
||||||
public static abstract @interface Anno {
|
public static abstract @interface Anno {
|
||||||
|
|
||||||
public abstract java.lang.Class<?>[] value();
|
public abstract java.lang.Class[] value();
|
||||||
}
|
}
|
||||||
|
|
||||||
@kotlin.Metadata()
|
@kotlin.Metadata()
|
||||||
|
|||||||
+4
-4
@@ -5,13 +5,13 @@ import kotlin.reflect.KClass;
|
|||||||
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
|
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
|
||||||
public abstract @interface Anno {
|
public abstract @interface Anno {
|
||||||
|
|
||||||
public abstract java.lang.Class<?> a();
|
public abstract java.lang.Class a();
|
||||||
|
|
||||||
public abstract java.lang.Class<?>[] b();
|
public abstract java.lang.Class[] b();
|
||||||
|
|
||||||
public abstract java.lang.Class<?>[] c();
|
public abstract java.lang.Class[] c();
|
||||||
|
|
||||||
public abstract java.lang.Class<?>[] d();
|
public abstract java.lang.Class[] d();
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////
|
////////////////////
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
import kotlin.reflect.KClass;
|
||||||
|
|
||||||
|
annotation class Anno(val baseClass: KClass<out Intf<*, *, *>>)
|
||||||
|
|
||||||
|
interface Intf<S, R, A>
|
||||||
|
|
||||||
|
abstract class Base<S, R, A> : Intf<S, R, A>
|
||||||
|
|
||||||
|
@Anno(baseClass = Base::class)
|
||||||
|
interface Impl
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
import java.lang.System;
|
||||||
|
|
||||||
|
@kotlin.Metadata()
|
||||||
|
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
|
||||||
|
public abstract @interface Anno {
|
||||||
|
|
||||||
|
public abstract java.lang.Class baseClass();
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
import java.lang.System;
|
||||||
|
|
||||||
|
@kotlin.Metadata()
|
||||||
|
public abstract class Base<S extends java.lang.Object, R extends java.lang.Object, A extends java.lang.Object> implements Intf<S, R, A> {
|
||||||
|
|
||||||
|
public Base() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
import java.lang.System;
|
||||||
|
|
||||||
|
@kotlin.Metadata()
|
||||||
|
@Anno(baseClass = Base.class)
|
||||||
|
public abstract interface Impl {
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
import java.lang.System;
|
||||||
|
|
||||||
|
@kotlin.Metadata()
|
||||||
|
public abstract interface Intf<S extends java.lang.Object, R extends java.lang.Object, A extends java.lang.Object> {
|
||||||
|
}
|
||||||
@@ -48,7 +48,7 @@ public abstract @interface AnnoClass {
|
|||||||
|
|
||||||
public abstract int x();
|
public abstract int x();
|
||||||
|
|
||||||
public abstract java.lang.Class<Color> c();
|
public abstract java.lang.Class c();
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////
|
////////////////////
|
||||||
|
|||||||
Reference in New Issue
Block a user