JVM IR: generate source-retained annotations in kapt mode
#KT-49682
This commit is contained in:
+1
-1
@@ -186,7 +186,7 @@ abstract class AnnotationCodegen(
|
|||||||
private fun genAnnotation(annotation: IrConstructorCall, path: TypePath?, isTypeAnnotation: Boolean): String? {
|
private fun genAnnotation(annotation: IrConstructorCall, path: TypePath?, isTypeAnnotation: Boolean): String? {
|
||||||
val annotationClass = annotation.annotationClass
|
val annotationClass = annotation.annotationClass
|
||||||
val retentionPolicy = getRetentionPolicy(annotationClass)
|
val retentionPolicy = getRetentionPolicy(annotationClass)
|
||||||
if (retentionPolicy == RetentionPolicy.SOURCE) return null
|
if (retentionPolicy == RetentionPolicy.SOURCE && !context.state.classBuilderMode.generateSourceRetentionAnnotations) return null
|
||||||
|
|
||||||
// FlexibleNullability is an internal annotation, used only inside the compiler
|
// FlexibleNullability is an internal annotation, used only inside the compiler
|
||||||
if (annotationClass.fqNameWhenAvailable in internalAnnotations) return null
|
if (annotationClass.fqNameWhenAvailable in internalAnnotations) return null
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
|
|
||||||
package test
|
package test
|
||||||
|
|
||||||
internal annotation class Anno
|
internal annotation class Anno
|
||||||
|
|||||||
@@ -0,0 +1,40 @@
|
|||||||
|
package test;
|
||||||
|
|
||||||
|
import java.lang.System;
|
||||||
|
|
||||||
|
@kotlin.Metadata()
|
||||||
|
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
|
||||||
|
public abstract @interface Anno {
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////
|
||||||
|
|
||||||
|
package test;
|
||||||
|
|
||||||
|
import java.lang.System;
|
||||||
|
|
||||||
|
@kotlin.Suppress(names = {"UNRESOLVED_REFERENCE"})
|
||||||
|
@kotlin.Metadata()
|
||||||
|
@Anno()
|
||||||
|
public final class ClassWithParent implements java.lang.CharSequence {
|
||||||
|
|
||||||
|
public ClassWithParent() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
@java.lang.Override()
|
||||||
|
public abstract char get(int index);
|
||||||
|
|
||||||
|
@java.lang.Override()
|
||||||
|
public abstract int getLength();
|
||||||
|
|
||||||
|
@java.lang.Override()
|
||||||
|
public final char charAt(int index) {
|
||||||
|
return '\u0000';
|
||||||
|
}
|
||||||
|
|
||||||
|
@java.lang.Override()
|
||||||
|
public final int length() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,3 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
|
|
||||||
import kotlinx.kapt.*
|
import kotlinx.kapt.*
|
||||||
|
|
||||||
class Test {
|
class Test {
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
@file:Suppress("AMBIGUOUS_ANONYMOUS_TYPE_INFERRED")
|
@file:Suppress("AMBIGUOUS_ANONYMOUS_TYPE_INFERRED")
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,66 @@
|
|||||||
|
import java.lang.System;
|
||||||
|
|
||||||
|
@kotlin.Metadata()
|
||||||
|
public class CrashMe {
|
||||||
|
@org.jetbrains.annotations.NotNull()
|
||||||
|
private final java.lang.Runnable notReally = null;
|
||||||
|
|
||||||
|
public CrashMe() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
import java.lang.System;
|
||||||
|
|
||||||
|
@kotlin.Suppress(names = {"AMBIGUOUS_ANONYMOUS_TYPE_INFERRED"})
|
||||||
|
@kotlin.Metadata()
|
||||||
|
public final class Kt14997Kt {
|
||||||
|
|
||||||
|
public Kt14997Kt() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
@org.jetbrains.annotations.NotNull()
|
||||||
|
public static final java.lang.Runnable a() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@org.jetbrains.annotations.NotNull()
|
||||||
|
public static final java.lang.Object b() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@org.jetbrains.annotations.NotNull()
|
||||||
|
public static final java.lang.Object c() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@org.jetbrains.annotations.NotNull()
|
||||||
|
public static final java.util.List<java.lang.Runnable> d() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@org.jetbrains.annotations.NotNull()
|
||||||
|
public static final java.lang.Runnable[] e() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final void e1(@org.jetbrains.annotations.NotNull()
|
||||||
|
java.lang.CharSequence[] a) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final void e2(@org.jetbrains.annotations.NotNull()
|
||||||
|
java.lang.Object[] a) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final void e3(@org.jetbrains.annotations.NotNull()
|
||||||
|
java.lang.CharSequence[] a) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final void e3(@org.jetbrains.annotations.NotNull()
|
||||||
|
java.lang.Object[] a) {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,3 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// CORRECT_ERROR_TYPES
|
// CORRECT_ERROR_TYPES
|
||||||
|
|
||||||
package foo
|
package foo
|
||||||
|
|||||||
@@ -0,0 +1,43 @@
|
|||||||
|
package foo;
|
||||||
|
|
||||||
|
import java.lang.System;
|
||||||
|
|
||||||
|
@kotlin.Metadata()
|
||||||
|
public abstract interface InterfaceWithDefaults<T extends java.lang.Object> {
|
||||||
|
|
||||||
|
public abstract void foo();
|
||||||
|
|
||||||
|
@kotlin.Metadata()
|
||||||
|
public static final class DefaultImpls {
|
||||||
|
|
||||||
|
public DefaultImpls() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T extends java.lang.Object>void foo(@org.jetbrains.annotations.NotNull()
|
||||||
|
foo.InterfaceWithDefaults<T> $this) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////
|
||||||
|
|
||||||
|
package foo;
|
||||||
|
|
||||||
|
import java.lang.System;
|
||||||
|
|
||||||
|
@kotlin.Metadata()
|
||||||
|
public abstract interface SubInterface<T extends java.lang.Object> extends foo.InterfaceWithDefaults<T> {
|
||||||
|
|
||||||
|
@kotlin.Metadata()
|
||||||
|
public static final class DefaultImpls {
|
||||||
|
|
||||||
|
public DefaultImpls() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T extends java.lang.Object>void foo(@org.jetbrains.annotations.NotNull()
|
||||||
|
foo.SubInterface<T> $this) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user