FIR: remap Java meta-annotations to Kotlin equivalents
This is a direct port of JavaAnnotationMapper from the old frontend.
This commit is contained in:
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
@R|java/lang/annotation/Documented|() @R|javax/annotation/meta/TypeQualifierNickname|() @R|javax/annotation/Nonnull|(R|javax/annotation/meta/When.NEVER|()) @R|java/lang/annotation/Retention|(R|java/lang/annotation/RetentionPolicy.RUNTIME|()) public abstract annotation class MyNullable : R|kotlin/Annotation| {
|
@R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/meta/TypeQualifierNickname|() @R|javax/annotation/Nonnull|(R|javax/annotation/meta/When.NEVER|()) @R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) public abstract annotation class MyNullable : R|kotlin/Annotation| {
|
||||||
public constructor(): R|MyNullable|
|
public constructor(): R|MyNullable|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -10,7 +10,7 @@
|
|||||||
public constructor(): R|A|
|
public constructor(): R|A|
|
||||||
|
|
||||||
}
|
}
|
||||||
@R|java/lang/annotation/Retention|(R|java/lang/annotation/RetentionPolicy.RUNTIME|()) @R|java/lang/annotation/Documented|() @R|javax/annotation/CheckForNull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.FIELD|())) public abstract annotation class FieldsAreNullable : R|kotlin/Annotation| {
|
@R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/CheckForNull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.FIELD|())) public abstract annotation class FieldsAreNullable : R|kotlin/Annotation| {
|
||||||
public constructor(): R|FieldsAreNullable|
|
public constructor(): R|FieldsAreNullable|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -6,19 +6,19 @@
|
|||||||
public constructor(): R|A|
|
public constructor(): R|A|
|
||||||
|
|
||||||
}
|
}
|
||||||
@R|java/lang/annotation/Retention|(R|java/lang/annotation/RetentionPolicy.RUNTIME|()) @R|java/lang/annotation/Documented|() @R|spr/UnknownNullability|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|())) public abstract annotation class ForceFlexibility : R|kotlin/Annotation| {
|
@R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|spr/UnknownNullability|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|())) public abstract annotation class ForceFlexibility : R|kotlin/Annotation| {
|
||||||
public constructor(): R|spr/ForceFlexibility|
|
public constructor(): R|spr/ForceFlexibility|
|
||||||
|
|
||||||
}
|
}
|
||||||
@R|java/lang/annotation/Target|(R|java/lang/annotation/ElementType.TYPE|()) @R|java/lang/annotation/Retention|(R|java/lang/annotation/RetentionPolicy.RUNTIME|()) @R|java/lang/annotation/Documented|() @R|javax/annotation/Nonnull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|())) public abstract annotation class NonNullApi : R|kotlin/Annotation| {
|
@R|kotlin/annotation/Target|(<implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.CLASS|(), R|kotlin/annotation/AnnotationTarget.FILE|())) @R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/Nonnull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|())) public abstract annotation class NonNullApi : R|kotlin/Annotation| {
|
||||||
public constructor(): R|spr/NonNullApi|
|
public constructor(): R|spr/NonNullApi|
|
||||||
|
|
||||||
}
|
}
|
||||||
@R|java/lang/annotation/Target|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|())) @R|java/lang/annotation/Retention|(R|java/lang/annotation/RetentionPolicy.RUNTIME|()) @R|java/lang/annotation/Documented|() @R|javax/annotation/Nonnull|(R|javax/annotation/meta/When.MAYBE|()) @R|javax/annotation/meta/TypeQualifierNickname|() public abstract annotation class Nullable : R|kotlin/Annotation| {
|
@R|kotlin/annotation/Target|(<implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|(), R|kotlin/annotation/AnnotationTarget.FUNCTION|(), R|kotlin/annotation/AnnotationTarget.PROPERTY_GETTER|(), R|kotlin/annotation/AnnotationTarget.PROPERTY_SETTER|())) @R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/Nonnull|(R|javax/annotation/meta/When.MAYBE|()) @R|javax/annotation/meta/TypeQualifierNickname|() public abstract annotation class Nullable : R|kotlin/Annotation| {
|
||||||
public constructor(): R|spr/Nullable|
|
public constructor(): R|spr/Nullable|
|
||||||
|
|
||||||
}
|
}
|
||||||
@R|java/lang/annotation/Documented|() @R|javax/annotation/meta/TypeQualifierNickname|() @R|javax/annotation/Nonnull|(R|javax/annotation/meta/When.UNKNOWN|()) @R|java/lang/annotation/Retention|(R|java/lang/annotation/RetentionPolicy.RUNTIME|()) public abstract annotation class UnknownNullability : R|kotlin/Annotation| {
|
@R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/meta/TypeQualifierNickname|() @R|javax/annotation/Nonnull|(R|javax/annotation/meta/When.UNKNOWN|()) @R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) public abstract annotation class UnknownNullability : R|kotlin/Annotation| {
|
||||||
public constructor(): R|spr/UnknownNullability|
|
public constructor(): R|spr/UnknownNullability|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -20,15 +20,15 @@ public abstract interface B : R|kotlin/Any| {
|
|||||||
public abstract fun foobar(@R|javax/annotation/Nonnull|() x: R|@EnhancedNullability kotlin/String|): R|kotlin/Unit|
|
public abstract fun foobar(@R|javax/annotation/Nonnull|() x: R|@EnhancedNullability kotlin/String|): R|kotlin/Unit|
|
||||||
|
|
||||||
}
|
}
|
||||||
@R|java/lang/annotation/Retention|(R|java/lang/annotation/RetentionPolicy.RUNTIME|()) @R|java/lang/annotation/Documented|() @R|spr/UnknownNullability|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|())) public abstract annotation class ForceFlexibility : R|kotlin/Annotation| {
|
@R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|spr/UnknownNullability|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|())) public abstract annotation class ForceFlexibility : R|kotlin/Annotation| {
|
||||||
public constructor(): R|spr/ForceFlexibility|
|
public constructor(): R|spr/ForceFlexibility|
|
||||||
|
|
||||||
}
|
}
|
||||||
@R|java/lang/annotation/Target|(R|java/lang/annotation/ElementType.TYPE|()) @R|java/lang/annotation/Retention|(R|java/lang/annotation/RetentionPolicy.RUNTIME|()) @R|java/lang/annotation/Documented|() @R|javax/annotation/Nonnull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|())) public abstract annotation class NonNullApi : R|kotlin/Annotation| {
|
@R|kotlin/annotation/Target|(<implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.CLASS|(), R|kotlin/annotation/AnnotationTarget.FILE|())) @R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/Nonnull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|())) public abstract annotation class NonNullApi : R|kotlin/Annotation| {
|
||||||
public constructor(): R|spr/NonNullApi|
|
public constructor(): R|spr/NonNullApi|
|
||||||
|
|
||||||
}
|
}
|
||||||
@R|java/lang/annotation/Documented|() @R|javax/annotation/meta/TypeQualifierNickname|() @R|javax/annotation/Nonnull|(R|javax/annotation/meta/When.UNKNOWN|()) @R|java/lang/annotation/Retention|(R|java/lang/annotation/RetentionPolicy.RUNTIME|()) public abstract annotation class UnknownNullability : R|kotlin/Annotation| {
|
@R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/meta/TypeQualifierNickname|() @R|javax/annotation/Nonnull|(R|javax/annotation/meta/When.UNKNOWN|()) @R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) public abstract annotation class UnknownNullability : R|kotlin/Annotation| {
|
||||||
public constructor(): R|spr/UnknownNullability|
|
public constructor(): R|spr/UnknownNullability|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -54,11 +54,11 @@
|
|||||||
public constructor(): R|C|
|
public constructor(): R|C|
|
||||||
|
|
||||||
}
|
}
|
||||||
@R|java/lang/annotation/Target|(R|java/lang/annotation/ElementType.TYPE|()) @R|java/lang/annotation/Retention|(R|java/lang/annotation/RetentionPolicy.RUNTIME|()) @R|java/lang/annotation/Documented|() @R|javax/annotation/Nonnull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|(), R|java/lang/annotation/ElementType.FIELD|())) public abstract annotation class NonNullApi : R|kotlin/Annotation| {
|
@R|kotlin/annotation/Target|(<implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.CLASS|(), R|kotlin/annotation/AnnotationTarget.FILE|())) @R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/Nonnull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|(), R|java/lang/annotation/ElementType.FIELD|())) public abstract annotation class NonNullApi : R|kotlin/Annotation| {
|
||||||
public constructor(): R|NonNullApi|
|
public constructor(): R|NonNullApi|
|
||||||
|
|
||||||
}
|
}
|
||||||
@R|java/lang/annotation/Target|(R|java/lang/annotation/ElementType.TYPE|()) @R|java/lang/annotation/Retention|(R|java/lang/annotation/RetentionPolicy.RUNTIME|()) @R|java/lang/annotation/Documented|() @R|javax/annotation/CheckForNull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|(), R|java/lang/annotation/ElementType.FIELD|())) public abstract annotation class NullableApi : R|kotlin/Annotation| {
|
@R|kotlin/annotation/Target|(<implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.CLASS|(), R|kotlin/annotation/AnnotationTarget.FILE|())) @R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/CheckForNull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|(), R|java/lang/annotation/ElementType.FIELD|())) public abstract annotation class NullableApi : R|kotlin/Annotation| {
|
||||||
public constructor(): R|NullableApi|
|
public constructor(): R|NullableApi|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -12,15 +12,15 @@
|
|||||||
public constructor(): R|A|
|
public constructor(): R|A|
|
||||||
|
|
||||||
}
|
}
|
||||||
@R|java/lang/annotation/Retention|(R|java/lang/annotation/RetentionPolicy.RUNTIME|()) @R|java/lang/annotation/Documented|() @R|javax/annotation/CheckForNull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.FIELD|())) public abstract annotation class FieldsAreNullable : R|kotlin/Annotation| {
|
@R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/CheckForNull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.FIELD|())) public abstract annotation class FieldsAreNullable : R|kotlin/Annotation| {
|
||||||
public constructor(): R|FieldsAreNullable|
|
public constructor(): R|FieldsAreNullable|
|
||||||
|
|
||||||
}
|
}
|
||||||
@R|java/lang/annotation/Retention|(R|java/lang/annotation/RetentionPolicy.RUNTIME|()) @R|java/lang/annotation/Documented|() @R|javax/annotation/Nonnull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|(), R|java/lang/annotation/ElementType.FIELD|())) public abstract annotation class NonNullApi : R|kotlin/Annotation| {
|
@R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/Nonnull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|(), R|java/lang/annotation/ElementType.FIELD|())) public abstract annotation class NonNullApi : R|kotlin/Annotation| {
|
||||||
public constructor(): R|NonNullApi|
|
public constructor(): R|NonNullApi|
|
||||||
|
|
||||||
}
|
}
|
||||||
@R|java/lang/annotation/Retention|(R|java/lang/annotation/RetentionPolicy.RUNTIME|()) @R|java/lang/annotation/Documented|() @R|javax/annotation/CheckForNull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|(), R|java/lang/annotation/ElementType.FIELD|())) public abstract annotation class NullableApi : R|kotlin/Annotation| {
|
@R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/CheckForNull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|(), R|java/lang/annotation/ElementType.FIELD|())) public abstract annotation class NullableApi : R|kotlin/Annotation| {
|
||||||
public constructor(): R|NullableApi|
|
public constructor(): R|NullableApi|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+2
-2
@@ -10,11 +10,11 @@
|
|||||||
public constructor(): R|A|
|
public constructor(): R|A|
|
||||||
|
|
||||||
}
|
}
|
||||||
@R|java/lang/annotation/Target|(R|java/lang/annotation/ElementType.TYPE|()) @R|java/lang/annotation/Retention|(R|java/lang/annotation/RetentionPolicy.RUNTIME|()) @R|java/lang/annotation/Documented|() @R|javax/annotation/Nonnull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|())) public abstract annotation class NonNullApi : R|kotlin/Annotation| {
|
@R|kotlin/annotation/Target|(<implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.CLASS|(), R|kotlin/annotation/AnnotationTarget.FILE|())) @R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/Nonnull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|())) public abstract annotation class NonNullApi : R|kotlin/Annotation| {
|
||||||
public constructor(): R|spr/NonNullApi|
|
public constructor(): R|spr/NonNullApi|
|
||||||
|
|
||||||
}
|
}
|
||||||
@R|java/lang/annotation/Target|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|())) @R|java/lang/annotation/Retention|(R|java/lang/annotation/RetentionPolicy.RUNTIME|()) @R|java/lang/annotation/Documented|() @R|javax/annotation/Nonnull|(R|javax/annotation/meta/When.MAYBE|()) @R|javax/annotation/meta/TypeQualifierNickname|() public abstract annotation class Nullable : R|kotlin/Annotation| {
|
@R|kotlin/annotation/Target|(<implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|(), R|kotlin/annotation/AnnotationTarget.FUNCTION|(), R|kotlin/annotation/AnnotationTarget.PROPERTY_GETTER|(), R|kotlin/annotation/AnnotationTarget.PROPERTY_SETTER|())) @R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/Nonnull|(R|javax/annotation/meta/When.MAYBE|()) @R|javax/annotation/meta/TypeQualifierNickname|() public abstract annotation class Nullable : R|kotlin/Annotation| {
|
||||||
public constructor(): R|spr/Nullable|
|
public constructor(): R|spr/Nullable|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -10,11 +10,11 @@ public open class A : R|kotlin/Any| {
|
|||||||
public constructor(): R|test/A|
|
public constructor(): R|test/A|
|
||||||
|
|
||||||
}
|
}
|
||||||
@R|java/lang/annotation/Target|(R|java/lang/annotation/ElementType.PACKAGE|()) @R|java/lang/annotation/Retention|(R|java/lang/annotation/RetentionPolicy.RUNTIME|()) @R|java/lang/annotation/Documented|() @R|javax/annotation/Nonnull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|())) public abstract annotation class NonNullApi : R|kotlin/Annotation| {
|
@R|kotlin/annotation/Target|(<implicitArrayOf>()) @R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/Nonnull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|())) public abstract annotation class NonNullApi : R|kotlin/Annotation| {
|
||||||
public constructor(): R|spr/NonNullApi|
|
public constructor(): R|spr/NonNullApi|
|
||||||
|
|
||||||
}
|
}
|
||||||
@R|java/lang/annotation/Target|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|())) @R|java/lang/annotation/Retention|(R|java/lang/annotation/RetentionPolicy.RUNTIME|()) @R|java/lang/annotation/Documented|() @R|javax/annotation/Nonnull|(R|javax/annotation/meta/When.MAYBE|()) @R|javax/annotation/meta/TypeQualifierNickname|() public abstract annotation class Nullable : R|kotlin/Annotation| {
|
@R|kotlin/annotation/Target|(<implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|(), R|kotlin/annotation/AnnotationTarget.FUNCTION|(), R|kotlin/annotation/AnnotationTarget.PROPERTY_GETTER|(), R|kotlin/annotation/AnnotationTarget.PROPERTY_SETTER|())) @R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/Nonnull|(R|javax/annotation/meta/When.MAYBE|()) @R|javax/annotation/meta/TypeQualifierNickname|() public abstract annotation class Nullable : R|kotlin/Annotation| {
|
||||||
public constructor(): R|spr/Nullable|
|
public constructor(): R|spr/Nullable|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Generated
+5
@@ -121,6 +121,11 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT
|
|||||||
runTest("compiler/testData/codegen/box/annotations/fileClassWithFileAnnotation.kt");
|
runTest("compiler/testData/codegen/box/annotations/fileClassWithFileAnnotation.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("javaAnnotationOnProperty.kt")
|
||||||
|
public void testJavaAnnotationOnProperty() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/annotations/javaAnnotationOnProperty.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("jvmAnnotationFlags.kt")
|
@TestMetadata("jvmAnnotationFlags.kt")
|
||||||
public void testJvmAnnotationFlags() throws Exception {
|
public void testJvmAnnotationFlags() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/annotations/jvmAnnotationFlags.kt");
|
runTest("compiler/testData/codegen/box/annotations/jvmAnnotationFlags.kt");
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.java
|
package org.jetbrains.kotlin.fir.java
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.builtins.StandardNames
|
||||||
import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap
|
import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap
|
||||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
@@ -43,9 +44,15 @@ import org.jetbrains.kotlin.load.java.structure.*
|
|||||||
import org.jetbrains.kotlin.load.java.structure.impl.JavaElementImpl
|
import org.jetbrains.kotlin.load.java.structure.impl.JavaElementImpl
|
||||||
import org.jetbrains.kotlin.load.java.typeEnhancement.TypeComponentPosition
|
import org.jetbrains.kotlin.load.java.typeEnhancement.TypeComponentPosition
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.types.Variance.*
|
import org.jetbrains.kotlin.types.Variance.*
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.runIf
|
import org.jetbrains.kotlin.utils.addToStdlib.runIf
|
||||||
|
import java.lang.Deprecated
|
||||||
|
import java.lang.annotation.Documented
|
||||||
|
import java.lang.annotation.Retention
|
||||||
|
import java.lang.annotation.Target
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
internal val JavaModifierListOwner.modality: Modality
|
internal val JavaModifierListOwner.modality: Modality
|
||||||
get() = when {
|
get() = when {
|
||||||
@@ -421,52 +428,121 @@ private fun FirRegularClass.createRawArguments(
|
|||||||
computeRawProjection(session, typeParameter, position, erasedUpperBound)
|
computeRawProjection(session, typeParameter, position, erasedUpperBound)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun FirAnnotationCallBuilder.buildArgumentMapping(
|
private fun buildEnumCall(session: FirSession, classId: ClassId?, entryName: Name?) =
|
||||||
|
buildFunctionCall {
|
||||||
|
val calleeReference = if (classId != null && entryName != null) {
|
||||||
|
session.firSymbolProvider.getClassDeclaredPropertySymbols(classId, entryName)
|
||||||
|
.firstOrNull()?.let { propertySymbol ->
|
||||||
|
buildResolvedNamedReference {
|
||||||
|
name = entryName
|
||||||
|
resolvedSymbol = propertySymbol
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
null
|
||||||
|
}
|
||||||
|
this.calleeReference = calleeReference
|
||||||
|
?: buildErrorNamedReference {
|
||||||
|
diagnostic = ConeSimpleDiagnostic("Strange Java enum value: $classId.$entryName", DiagnosticKind.Java)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private val JAVA_TARGET_CLASS_ID = ClassId.topLevel(FqName(Target::class.java.canonicalName))
|
||||||
|
private val JAVA_RETENTION_CLASS_ID = ClassId.topLevel(FqName(Retention::class.java.canonicalName))
|
||||||
|
private val JAVA_DEPRECATED_CLASS_ID = ClassId.topLevel(FqName(Deprecated::class.java.canonicalName))
|
||||||
|
private val JAVA_DOCUMENTED_CLASS_ID = ClassId.topLevel(FqName(Documented::class.java.canonicalName))
|
||||||
|
private val JAVA_REPEATABLE_CLASS_ID = ClassId.topLevel(FqName("java.lang.annotation.Repeatable")) // since Java 8
|
||||||
|
|
||||||
|
private val JAVA_TARGETS_TO_KOTLIN = mapOf(
|
||||||
|
"TYPE" to EnumSet.of(AnnotationTarget.CLASS, AnnotationTarget.FILE),
|
||||||
|
"ANNOTATION_TYPE" to EnumSet.of(AnnotationTarget.ANNOTATION_CLASS),
|
||||||
|
"TYPE_PARAMETER" to EnumSet.of(AnnotationTarget.TYPE_PARAMETER),
|
||||||
|
"FIELD" to EnumSet.of(AnnotationTarget.FIELD),
|
||||||
|
"LOCAL_VARIABLE" to EnumSet.of(AnnotationTarget.LOCAL_VARIABLE),
|
||||||
|
"PARAMETER" to EnumSet.of(AnnotationTarget.VALUE_PARAMETER),
|
||||||
|
"CONSTRUCTOR" to EnumSet.of(AnnotationTarget.CONSTRUCTOR),
|
||||||
|
"METHOD" to EnumSet.of(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER),
|
||||||
|
"TYPE_USE" to EnumSet.of(AnnotationTarget.TYPE)
|
||||||
|
)
|
||||||
|
|
||||||
|
private fun List<JavaAnnotationArgument>.mapJavaTargetArguments(session: FirSession): FirExpression? =
|
||||||
|
buildArrayOfCall {
|
||||||
|
argumentList = buildArgumentList {
|
||||||
|
val resultSet = EnumSet.noneOf(AnnotationTarget::class.java)
|
||||||
|
for (target in this@mapJavaTargetArguments) {
|
||||||
|
if (target !is JavaEnumValueAnnotationArgument) return null
|
||||||
|
resultSet.addAll(JAVA_TARGETS_TO_KOTLIN[target.entryName?.asString()] ?: continue)
|
||||||
|
}
|
||||||
|
val classId = ClassId.topLevel(StandardNames.FqNames.annotationTarget)
|
||||||
|
resultSet.mapTo(arguments) { buildEnumCall(session, classId, Name.identifier(it.name)) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private val JAVA_RETENTION_TO_KOTLIN = mapOf(
|
||||||
|
"RUNTIME" to AnnotationRetention.RUNTIME,
|
||||||
|
"CLASS" to AnnotationRetention.BINARY,
|
||||||
|
"SOURCE" to AnnotationRetention.SOURCE
|
||||||
|
)
|
||||||
|
|
||||||
|
private fun JavaAnnotationArgument.mapJavaRetentionArgument(session: FirSession): FirExpression? =
|
||||||
|
JAVA_RETENTION_TO_KOTLIN[(this as? JavaEnumValueAnnotationArgument)?.entryName?.asString()]?.let {
|
||||||
|
buildEnumCall(session, ClassId.topLevel(StandardNames.FqNames.annotationRetention), Name.identifier(it.name))
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun buildArgumentMapping(
|
||||||
session: FirSession,
|
session: FirSession,
|
||||||
javaTypeParameterStack: JavaTypeParameterStack,
|
javaTypeParameterStack: JavaTypeParameterStack,
|
||||||
classId: ClassId?,
|
lookupTag: ConeClassLikeLookupTagImpl,
|
||||||
annotationArguments: Collection<JavaAnnotationArgument>
|
annotationArguments: Collection<JavaAnnotationArgument>
|
||||||
): LinkedHashMap<FirExpression, FirValueParameter>? {
|
): FirArgumentList? {
|
||||||
if (classId == null) {
|
if (annotationArguments.none { it.name != null }) {
|
||||||
annotationTypeRef = buildErrorTypeRef { diagnostic = ConeUnresolvedReferenceError() }
|
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
val lookupTag = ConeClassLikeLookupTagImpl(classId)
|
val annotationClassSymbol = session.firSymbolProvider.getClassLikeSymbolByFqName(lookupTag.classId).also {
|
||||||
annotationTypeRef = buildResolvedTypeRef {
|
lookupTag.bindSymbolToLookupTag(session, it)
|
||||||
type = ConeClassLikeTypeImpl(lookupTag, emptyArray(), isNullable = false)
|
} ?: return null
|
||||||
|
val annotationConstructor =
|
||||||
|
(annotationClassSymbol.fir as FirRegularClass).declarations.filterIsInstance<FirConstructor>().first()
|
||||||
|
val mapping = annotationArguments.associateTo(linkedMapOf()) { argument ->
|
||||||
|
val parameter = annotationConstructor.valueParameters.find { it.name == (argument.name ?: JavaSymbolProvider.VALUE_METHOD_NAME) }
|
||||||
|
?: return null
|
||||||
|
argument.toFirExpression(session, javaTypeParameterStack) to parameter
|
||||||
}
|
}
|
||||||
if (annotationArguments.any { it.name != null }) {
|
return buildResolvedArgumentList(mapping)
|
||||||
val mapping = linkedMapOf<FirExpression, FirValueParameter>()
|
|
||||||
val annotationClassSymbol = session.firSymbolProvider.getClassLikeSymbolByFqName(classId).also {
|
|
||||||
lookupTag.bindSymbolToLookupTag(session, it)
|
|
||||||
}
|
|
||||||
if (annotationClassSymbol != null) {
|
|
||||||
val annotationConstructor =
|
|
||||||
(annotationClassSymbol.fir as FirRegularClass).declarations.filterIsInstance<FirConstructor>().first()
|
|
||||||
for (argument in annotationArguments) {
|
|
||||||
mapping[argument.toFirExpression(session, javaTypeParameterStack)] =
|
|
||||||
annotationConstructor.valueParameters.find { it.name == (argument.name ?: JavaSymbolProvider.VALUE_METHOD_NAME) }
|
|
||||||
?: return null
|
|
||||||
}
|
|
||||||
return mapping
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun JavaAnnotation.toFirAnnotationCall(
|
internal fun JavaAnnotation.toFirAnnotationCall(
|
||||||
session: FirSession, javaTypeParameterStack: JavaTypeParameterStack
|
session: FirSession, javaTypeParameterStack: JavaTypeParameterStack
|
||||||
): FirAnnotationCall {
|
): FirAnnotationCall {
|
||||||
return buildAnnotationCall {
|
return buildAnnotationCall {
|
||||||
val mapping = buildArgumentMapping(session, javaTypeParameterStack, classId, arguments)
|
val lookupTag = when (classId) {
|
||||||
argumentList = if (mapping != null) {
|
JAVA_TARGET_CLASS_ID -> ClassId.topLevel(StandardNames.FqNames.target)
|
||||||
buildResolvedArgumentList(mapping)
|
JAVA_RETENTION_CLASS_ID -> ClassId.topLevel(StandardNames.FqNames.retention)
|
||||||
} else {
|
JAVA_REPEATABLE_CLASS_ID -> ClassId.topLevel(StandardNames.FqNames.repeatable)
|
||||||
buildArgumentList {
|
JAVA_DOCUMENTED_CLASS_ID -> ClassId.topLevel(StandardNames.FqNames.mustBeDocumented)
|
||||||
for (argument in this@toFirAnnotationCall.arguments) {
|
JAVA_DEPRECATED_CLASS_ID -> ClassId.topLevel(StandardNames.FqNames.deprecated)
|
||||||
arguments += argument.toFirExpression(session, javaTypeParameterStack)
|
else -> classId
|
||||||
}
|
}?.let(::ConeClassLikeLookupTagImpl)
|
||||||
|
annotationTypeRef = if (lookupTag != null) {
|
||||||
|
buildResolvedTypeRef {
|
||||||
|
type = ConeClassLikeTypeImpl(lookupTag, emptyArray(), isNullable = false)
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
buildErrorTypeRef { diagnostic = ConeUnresolvedReferenceError() }
|
||||||
|
}
|
||||||
|
argumentList = when (classId) {
|
||||||
|
JAVA_TARGET_CLASS_ID -> when (val argument = arguments.singleOrNull()) {
|
||||||
|
is JavaArrayAnnotationArgument -> argument.getElements().mapJavaTargetArguments(session)?.let(::buildUnaryArgumentList)
|
||||||
|
is JavaEnumValueAnnotationArgument -> listOf(argument).mapJavaTargetArguments(session)?.let(::buildUnaryArgumentList)
|
||||||
|
else -> null
|
||||||
|
}
|
||||||
|
JAVA_RETENTION_CLASS_ID -> arguments.singleOrNull()?.mapJavaRetentionArgument(session)?.let(::buildUnaryArgumentList)
|
||||||
|
JAVA_DEPRECATED_CLASS_ID ->
|
||||||
|
buildUnaryArgumentList(buildConstExpression(null, FirConstKind.String, "Deprecated in Java").setProperType(session))
|
||||||
|
null -> null
|
||||||
|
else -> buildArgumentMapping(session, javaTypeParameterStack, lookupTag!!, arguments)
|
||||||
|
} ?: buildArgumentList {
|
||||||
|
this@toFirAnnotationCall.arguments.mapTo(arguments) { it.toFirExpression(session, javaTypeParameterStack) }
|
||||||
}
|
}
|
||||||
calleeReference = FirReferencePlaceholderForResolvedAnnotations
|
calleeReference = FirReferencePlaceholderForResolvedAnnotations
|
||||||
}
|
}
|
||||||
@@ -490,9 +566,7 @@ internal fun MutableList<FirAnnotationCall>.addAnnotationsFrom(
|
|||||||
javaAnnotationOwner: JavaAnnotationOwner,
|
javaAnnotationOwner: JavaAnnotationOwner,
|
||||||
javaTypeParameterStack: JavaTypeParameterStack
|
javaTypeParameterStack: JavaTypeParameterStack
|
||||||
) {
|
) {
|
||||||
for (annotation in javaAnnotationOwner.annotations) {
|
javaAnnotationOwner.annotations.mapTo(this) { it.toFirAnnotationCall(session, javaTypeParameterStack) }
|
||||||
this += annotation.toFirAnnotationCall(session, javaTypeParameterStack)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun JavaValueParameter.toFirValueParameter(
|
internal fun JavaValueParameter.toFirValueParameter(
|
||||||
@@ -540,46 +614,18 @@ private fun JavaType?.toConeProjectionWithoutEnhancement(
|
|||||||
private fun JavaAnnotationArgument.toFirExpression(
|
private fun JavaAnnotationArgument.toFirExpression(
|
||||||
session: FirSession, javaTypeParameterStack: JavaTypeParameterStack
|
session: FirSession, javaTypeParameterStack: JavaTypeParameterStack
|
||||||
): FirExpression {
|
): FirExpression {
|
||||||
// TODO: this.name
|
|
||||||
return when (this) {
|
return when (this) {
|
||||||
is JavaLiteralAnnotationArgument -> {
|
is JavaLiteralAnnotationArgument -> value.createConstantOrError(session)
|
||||||
value.createConstantOrError(session)
|
|
||||||
}
|
|
||||||
is JavaArrayAnnotationArgument -> buildArrayOfCall {
|
is JavaArrayAnnotationArgument -> buildArrayOfCall {
|
||||||
argumentList = buildArgumentList {
|
argumentList = buildArgumentList {
|
||||||
for (element in getElements()) {
|
getElements().mapTo(arguments) { it.toFirExpression(session, javaTypeParameterStack) }
|
||||||
arguments += element.toFirExpression(session, javaTypeParameterStack)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
is JavaEnumValueAnnotationArgument -> {
|
|
||||||
buildFunctionCall {
|
|
||||||
val classId = this@toFirExpression.enumClassId
|
|
||||||
val entryName = this@toFirExpression.entryName
|
|
||||||
val calleeReference = if (classId != null && entryName != null) {
|
|
||||||
val propertySymbol = session.firSymbolProvider.getClassDeclaredPropertySymbols(
|
|
||||||
classId, entryName
|
|
||||||
).firstOrNull()
|
|
||||||
propertySymbol?.let {
|
|
||||||
buildResolvedNamedReference {
|
|
||||||
name = entryName
|
|
||||||
resolvedSymbol = it
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
null
|
|
||||||
}
|
|
||||||
this.calleeReference = calleeReference
|
|
||||||
?: buildErrorNamedReference {
|
|
||||||
diagnostic = ConeSimpleDiagnostic("Strange Java enum value: $classId.$entryName", DiagnosticKind.Java)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
is JavaEnumValueAnnotationArgument -> buildEnumCall(session, enumClassId, entryName)
|
||||||
is JavaClassObjectAnnotationArgument -> buildGetClassCall {
|
is JavaClassObjectAnnotationArgument -> buildGetClassCall {
|
||||||
val referencedType = getReferencedType()
|
|
||||||
argumentList = buildUnaryArgumentList(
|
argumentList = buildUnaryArgumentList(
|
||||||
buildClassReferenceExpression {
|
buildClassReferenceExpression {
|
||||||
classTypeRef = referencedType.toFirResolvedTypeRef(session, javaTypeParameterStack)
|
classTypeRef = getReferencedType().toFirResolvedTypeRef(session, javaTypeParameterStack)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
// WITH_REFLECT
|
||||||
|
// TARGET_BACKEND: JVM
|
||||||
|
// FILE: Ann1.java
|
||||||
|
import java.lang.annotation.*;
|
||||||
|
|
||||||
|
@Target({ElementType.FIELD})
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
public @interface Ann1 {}
|
||||||
|
|
||||||
|
// FILE: Ann2.java
|
||||||
|
import java.lang.annotation.*;
|
||||||
|
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
public @interface Ann2 {}
|
||||||
|
|
||||||
|
// FILE: box.kt
|
||||||
|
class C {
|
||||||
|
@Ann1 @Ann2 val x = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
fun box(): String {
|
||||||
|
require(C::class.java.getDeclaredField("x")?.getAnnotation(Ann1::class.java) != null) { "no Ann1 on field x" }
|
||||||
|
require(C::class.java.getDeclaredMethod("getX\$annotations")?.getAnnotation(Ann2::class.java) != null) { "no Ann2 on property x" }
|
||||||
|
return "OK"
|
||||||
|
}
|
||||||
+5
@@ -121,6 +121,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
|||||||
runTest("compiler/testData/codegen/box/annotations/fileClassWithFileAnnotation.kt");
|
runTest("compiler/testData/codegen/box/annotations/fileClassWithFileAnnotation.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("javaAnnotationOnProperty.kt")
|
||||||
|
public void testJavaAnnotationOnProperty() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/annotations/javaAnnotationOnProperty.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("jvmAnnotationFlags.kt")
|
@TestMetadata("jvmAnnotationFlags.kt")
|
||||||
public void testJvmAnnotationFlags() throws Exception {
|
public void testJvmAnnotationFlags() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/annotations/jvmAnnotationFlags.kt");
|
runTest("compiler/testData/codegen/box/annotations/jvmAnnotationFlags.kt");
|
||||||
|
|||||||
+5
@@ -121,6 +121,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
|
|||||||
runTest("compiler/testData/codegen/box/annotations/fileClassWithFileAnnotation.kt");
|
runTest("compiler/testData/codegen/box/annotations/fileClassWithFileAnnotation.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("javaAnnotationOnProperty.kt")
|
||||||
|
public void testJavaAnnotationOnProperty() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/annotations/javaAnnotationOnProperty.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("jvmAnnotationFlags.kt")
|
@TestMetadata("jvmAnnotationFlags.kt")
|
||||||
public void testJvmAnnotationFlags() throws Exception {
|
public void testJvmAnnotationFlags() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/annotations/jvmAnnotationFlags.kt");
|
runTest("compiler/testData/codegen/box/annotations/jvmAnnotationFlags.kt");
|
||||||
|
|||||||
+5
@@ -121,6 +121,11 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
|
|||||||
runTest("compiler/testData/codegen/box/annotations/fileClassWithFileAnnotation.kt");
|
runTest("compiler/testData/codegen/box/annotations/fileClassWithFileAnnotation.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("javaAnnotationOnProperty.kt")
|
||||||
|
public void testJavaAnnotationOnProperty() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/annotations/javaAnnotationOnProperty.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("jvmAnnotationFlags.kt")
|
@TestMetadata("jvmAnnotationFlags.kt")
|
||||||
public void testJvmAnnotationFlags() throws Exception {
|
public void testJvmAnnotationFlags() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/annotations/jvmAnnotationFlags.kt");
|
runTest("compiler/testData/codegen/box/annotations/jvmAnnotationFlags.kt");
|
||||||
|
|||||||
@@ -242,7 +242,7 @@ KtFirFunctionSymbol:
|
|||||||
visibility: PUBLIC
|
visibility: PUBLIC
|
||||||
|
|
||||||
KtFirFunctionSymbol:
|
KtFirFunctionSymbol:
|
||||||
annotations: [java/lang/Deprecated()]
|
annotations: [kotlin/Deprecated(message = Deprecated in Java)]
|
||||||
callableIdIfNonLocal: java.lang.String.getBytes
|
callableIdIfNonLocal: java.lang.String.getBytes
|
||||||
isExtension: false
|
isExtension: false
|
||||||
isExternal: false
|
isExternal: false
|
||||||
@@ -1166,7 +1166,7 @@ KtFirConstructorSymbol:
|
|||||||
visibility: PUBLIC
|
visibility: PUBLIC
|
||||||
|
|
||||||
KtFirConstructorSymbol:
|
KtFirConstructorSymbol:
|
||||||
annotations: [java/lang/Deprecated()]
|
annotations: [kotlin/Deprecated(message = Deprecated in Java)]
|
||||||
containingClassIdIfNonLocal: java/lang/String
|
containingClassIdIfNonLocal: java/lang/String
|
||||||
isPrimary: false
|
isPrimary: false
|
||||||
origin: JAVA
|
origin: JAVA
|
||||||
@@ -1176,7 +1176,7 @@ KtFirConstructorSymbol:
|
|||||||
visibility: PUBLIC
|
visibility: PUBLIC
|
||||||
|
|
||||||
KtFirConstructorSymbol:
|
KtFirConstructorSymbol:
|
||||||
annotations: [java/lang/Deprecated()]
|
annotations: [kotlin/Deprecated(message = Deprecated in Java)]
|
||||||
containingClassIdIfNonLocal: java/lang/String
|
containingClassIdIfNonLocal: java/lang/String
|
||||||
isPrimary: false
|
isPrimary: false
|
||||||
origin: JAVA
|
origin: JAVA
|
||||||
@@ -1276,7 +1276,7 @@ KtFirConstructorSymbol:
|
|||||||
visibility: UNKNOWN
|
visibility: UNKNOWN
|
||||||
|
|
||||||
KtFirConstructorSymbol:
|
KtFirConstructorSymbol:
|
||||||
annotations: [java/lang/Deprecated()]
|
annotations: [kotlin/Deprecated(message = Deprecated in Java)]
|
||||||
containingClassIdIfNonLocal: java/lang/String
|
containingClassIdIfNonLocal: java/lang/String
|
||||||
isPrimary: false
|
isPrimary: false
|
||||||
origin: JAVA
|
origin: JAVA
|
||||||
|
|||||||
Reference in New Issue
Block a user