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
|
||||
}
|
||||
},
|
||||
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)
|
||||
|
||||
+5
@@ -354,6 +354,11 @@ public class ClassFileToSourceStubConverterTestGenerated extends AbstractClassFi
|
||||
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")
|
||||
public void testPrimitiveTypes() throws Exception {
|
||||
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 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)
|
||||
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)
|
||||
public static abstract @interface Anno {
|
||||
|
||||
public abstract java.lang.Class<?>[] value();
|
||||
public abstract java.lang.Class[] value();
|
||||
}
|
||||
|
||||
@kotlin.Metadata()
|
||||
|
||||
+1
-1
@@ -164,7 +164,7 @@ public abstract interface IFoo {
|
||||
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
|
||||
public static abstract @interface Anno {
|
||||
|
||||
public abstract java.lang.Class<?>[] value();
|
||||
public abstract java.lang.Class[] value();
|
||||
}
|
||||
|
||||
@kotlin.Metadata()
|
||||
|
||||
+4
-4
@@ -5,13 +5,13 @@ import kotlin.reflect.KClass;
|
||||
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
|
||||
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 java.lang.Class<Color> c();
|
||||
public abstract java.lang.Class c();
|
||||
}
|
||||
|
||||
////////////////////
|
||||
|
||||
Reference in New Issue
Block a user