[FIR] Deserialize enum entries access in annotations into FirEnumEntryDeserializedAccessExpression

^KT-64975 Fixed
^KT-62900
This commit is contained in:
Dmitriy Novozhilov
2024-01-17 17:17:00 +02:00
committed by Space Team
parent 150ff1172e
commit a4e8be8687
38 changed files with 120 additions and 103 deletions
+17 -18
View File
@@ -365,7 +365,7 @@ public abstract interface Comparable<in T> : R|kotlin/Any| {
}
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.TYPE|)) @R|kotlin/annotation/MustBeDocumented|() @R|kotlin/SinceKotlin|(version = String(1.7)) public final annotation class ContextFunctionTypeParams : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.TYPE)) @R|kotlin/annotation/MustBeDocumented|() @R|kotlin/SinceKotlin|(version = String(1.7)) public final annotation class ContextFunctionTypeParams : R|kotlin/Annotation| {
public final val count: R|kotlin/Int|
public get(): R|kotlin/Int|
@@ -373,7 +373,7 @@ public abstract interface Comparable<in T> : R|kotlin/Any| {
}
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.CLASS|, R|kotlin/annotation/AnnotationTarget.FUNCTION|, R|kotlin/annotation/AnnotationTarget.PROPERTY|, R|kotlin/annotation/AnnotationTarget.ANNOTATION_CLASS|, R|kotlin/annotation/AnnotationTarget.CONSTRUCTOR|, R|kotlin/annotation/AnnotationTarget.PROPERTY_SETTER|, R|kotlin/annotation/AnnotationTarget.PROPERTY_GETTER|, R|kotlin/annotation/AnnotationTarget.TYPEALIAS|)) @R|kotlin/annotation/MustBeDocumented|() public final annotation class Deprecated : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.CLASS, kotlin/annotation/AnnotationTarget.FUNCTION, kotlin/annotation/AnnotationTarget.PROPERTY, kotlin/annotation/AnnotationTarget.ANNOTATION_CLASS, kotlin/annotation/AnnotationTarget.CONSTRUCTOR, kotlin/annotation/AnnotationTarget.PROPERTY_SETTER, kotlin/annotation/AnnotationTarget.PROPERTY_GETTER, kotlin/annotation/AnnotationTarget.TYPEALIAS)) @R|kotlin/annotation/MustBeDocumented|() public final annotation class Deprecated : R|kotlin/Annotation| {
public final val level: R|kotlin/DeprecationLevel|
public get(): R|kotlin/DeprecationLevel|
@@ -387,7 +387,7 @@ public abstract interface Comparable<in T> : R|kotlin/Any| {
}
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.CLASS|, R|kotlin/annotation/AnnotationTarget.FUNCTION|, R|kotlin/annotation/AnnotationTarget.PROPERTY|, R|kotlin/annotation/AnnotationTarget.ANNOTATION_CLASS|, R|kotlin/annotation/AnnotationTarget.CONSTRUCTOR|, R|kotlin/annotation/AnnotationTarget.PROPERTY_SETTER|, R|kotlin/annotation/AnnotationTarget.PROPERTY_GETTER|, R|kotlin/annotation/AnnotationTarget.TYPEALIAS|)) @R|kotlin/annotation/MustBeDocumented|() @R|kotlin/SinceKotlin|(version = String(1.4)) public final annotation class DeprecatedSinceKotlin : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.CLASS, kotlin/annotation/AnnotationTarget.FUNCTION, kotlin/annotation/AnnotationTarget.PROPERTY, kotlin/annotation/AnnotationTarget.ANNOTATION_CLASS, kotlin/annotation/AnnotationTarget.CONSTRUCTOR, kotlin/annotation/AnnotationTarget.PROPERTY_SETTER, kotlin/annotation/AnnotationTarget.PROPERTY_GETTER, kotlin/annotation/AnnotationTarget.TYPEALIAS)) @R|kotlin/annotation/MustBeDocumented|() @R|kotlin/SinceKotlin|(version = String(1.4)) public final annotation class DeprecatedSinceKotlin : R|kotlin/Annotation| {
public final val errorSince: R|kotlin/String|
public get(): R|kotlin/String|
@@ -565,7 +565,7 @@ public final class DoubleArray : R|kotlin/Any|, R|kotlin/Cloneable|, R|java/io/S
}
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.ANNOTATION_CLASS|)) @R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.BINARY|) @R|kotlin/annotation/MustBeDocumented|() @R|kotlin/SinceKotlin|(version = String(1.1)) public final annotation class DslMarker : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.ANNOTATION_CLASS)) @R|kotlin/annotation/Retention|(value = kotlin/annotation/AnnotationRetention.BINARY) @R|kotlin/annotation/MustBeDocumented|() @R|kotlin/SinceKotlin|(version = String(1.1)) public final annotation class DslMarker : R|kotlin/Annotation| {
public constructor(): R|kotlin/DslMarker|
}
@@ -596,17 +596,17 @@ public abstract class Enum<E : R|kotlin/Enum<E>|> : R|kotlin/Comparable<E>|, R|j
}
@R|kotlin/RequiresOptIn|(level = R|kotlin/RequiresOptIn.Level.ERROR|) @R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.BINARY|) @R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.CLASS|, R|kotlin/annotation/AnnotationTarget.ANNOTATION_CLASS|, R|kotlin/annotation/AnnotationTarget.PROPERTY|, R|kotlin/annotation/AnnotationTarget.FIELD|, R|kotlin/annotation/AnnotationTarget.LOCAL_VARIABLE|, R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|, R|kotlin/annotation/AnnotationTarget.CONSTRUCTOR|, R|kotlin/annotation/AnnotationTarget.FUNCTION|, R|kotlin/annotation/AnnotationTarget.PROPERTY_GETTER|, R|kotlin/annotation/AnnotationTarget.PROPERTY_SETTER|, R|kotlin/annotation/AnnotationTarget.TYPEALIAS|)) @R|kotlin/annotation/MustBeDocumented|() @R|kotlin/SinceKotlin|(version = String(1.3)) public final annotation class ExperimentalStdlibApi : R|kotlin/Annotation| {
@R|kotlin/RequiresOptIn|(level = kotlin/RequiresOptIn.Level.ERROR) @R|kotlin/annotation/Retention|(value = kotlin/annotation/AnnotationRetention.BINARY) @R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.CLASS, kotlin/annotation/AnnotationTarget.ANNOTATION_CLASS, kotlin/annotation/AnnotationTarget.PROPERTY, kotlin/annotation/AnnotationTarget.FIELD, kotlin/annotation/AnnotationTarget.LOCAL_VARIABLE, kotlin/annotation/AnnotationTarget.VALUE_PARAMETER, kotlin/annotation/AnnotationTarget.CONSTRUCTOR, kotlin/annotation/AnnotationTarget.FUNCTION, kotlin/annotation/AnnotationTarget.PROPERTY_GETTER, kotlin/annotation/AnnotationTarget.PROPERTY_SETTER, kotlin/annotation/AnnotationTarget.TYPEALIAS)) @R|kotlin/annotation/MustBeDocumented|() @R|kotlin/SinceKotlin|(version = String(1.3)) public final annotation class ExperimentalStdlibApi : R|kotlin/Annotation| {
public constructor(): R|kotlin/ExperimentalStdlibApi|
}
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.CLASS|)) @R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.BINARY|) @R|kotlin/SinceKotlin|(version = String(1.8)) @R|kotlin/RequiresOptIn|() public final annotation class ExperimentalSubclassOptIn : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.CLASS)) @R|kotlin/annotation/Retention|(value = kotlin/annotation/AnnotationRetention.BINARY) @R|kotlin/SinceKotlin|(version = String(1.8)) @R|kotlin/RequiresOptIn|() public final annotation class ExperimentalSubclassOptIn : R|kotlin/Annotation| {
public constructor(): R|kotlin/ExperimentalSubclassOptIn|
}
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.TYPE|)) @R|kotlin/annotation/MustBeDocumented|() public final annotation class ExtensionFunctionType : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.TYPE)) @R|kotlin/annotation/MustBeDocumented|() public final annotation class ExtensionFunctionType : R|kotlin/Annotation| {
public constructor(): R|kotlin/ExtensionFunctionType|
}
@@ -1123,7 +1123,7 @@ See https://youtrack.jetbrains.com/issue/KT-46465 for details about the migratio
}
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.CLASS|, R|kotlin/annotation/AnnotationTarget.PROPERTY|, R|kotlin/annotation/AnnotationTarget.LOCAL_VARIABLE|, R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|, R|kotlin/annotation/AnnotationTarget.CONSTRUCTOR|, R|kotlin/annotation/AnnotationTarget.FUNCTION|, R|kotlin/annotation/AnnotationTarget.PROPERTY_GETTER|, R|kotlin/annotation/AnnotationTarget.PROPERTY_SETTER|, R|kotlin/annotation/AnnotationTarget.EXPRESSION|, R|kotlin/annotation/AnnotationTarget.FILE|, R|kotlin/annotation/AnnotationTarget.TYPEALIAS|)) @R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.SOURCE|) @R|kotlin/SinceKotlin|(version = String(1.3)) public final annotation class OptIn : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.CLASS, kotlin/annotation/AnnotationTarget.PROPERTY, kotlin/annotation/AnnotationTarget.LOCAL_VARIABLE, kotlin/annotation/AnnotationTarget.VALUE_PARAMETER, kotlin/annotation/AnnotationTarget.CONSTRUCTOR, kotlin/annotation/AnnotationTarget.FUNCTION, kotlin/annotation/AnnotationTarget.PROPERTY_GETTER, kotlin/annotation/AnnotationTarget.PROPERTY_SETTER, kotlin/annotation/AnnotationTarget.EXPRESSION, kotlin/annotation/AnnotationTarget.FILE, kotlin/annotation/AnnotationTarget.TYPEALIAS)) @R|kotlin/annotation/Retention|(value = kotlin/annotation/AnnotationRetention.SOURCE) @R|kotlin/SinceKotlin|(version = String(1.3)) public final annotation class OptIn : R|kotlin/Annotation| {
public final val markerClass: R|kotlin/Array<out kotlin/reflect/KClass<out kotlin/Annotation>>|
public get(): R|kotlin/Array<out kotlin/reflect/KClass<out kotlin/Annotation>>|
@@ -1131,7 +1131,7 @@ See https://youtrack.jetbrains.com/issue/KT-46465 for details about the migratio
}
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.TYPE|)) @R|kotlin/annotation/MustBeDocumented|() @R|kotlin/SinceKotlin|(version = String(1.1)) public final annotation class ParameterName : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.TYPE)) @R|kotlin/annotation/MustBeDocumented|() @R|kotlin/SinceKotlin|(version = String(1.1)) public final annotation class ParameterName : R|kotlin/Annotation| {
public final val name: R|kotlin/String|
public get(): R|kotlin/String|
@@ -1139,12 +1139,12 @@ See https://youtrack.jetbrains.com/issue/KT-46465 for details about the migratio
}
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.CLASS|, R|kotlin/annotation/AnnotationTarget.CONSTRUCTOR|, R|kotlin/annotation/AnnotationTarget.FUNCTION|, R|kotlin/annotation/AnnotationTarget.PROPERTY|)) @R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.BINARY|) @R|kotlin/annotation/MustBeDocumented|() @R|kotlin/SinceKotlin|(version = String(1.1)) public final annotation class PublishedApi : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.CLASS, kotlin/annotation/AnnotationTarget.CONSTRUCTOR, kotlin/annotation/AnnotationTarget.FUNCTION, kotlin/annotation/AnnotationTarget.PROPERTY)) @R|kotlin/annotation/Retention|(value = kotlin/annotation/AnnotationRetention.BINARY) @R|kotlin/annotation/MustBeDocumented|() @R|kotlin/SinceKotlin|(version = String(1.1)) public final annotation class PublishedApi : R|kotlin/Annotation| {
public constructor(): R|kotlin/PublishedApi|
}
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>()) @R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.BINARY|) @R|kotlin/annotation/MustBeDocumented|() public final annotation class ReplaceWith : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>()) @R|kotlin/annotation/Retention|(value = kotlin/annotation/AnnotationRetention.BINARY) @R|kotlin/annotation/MustBeDocumented|() public final annotation class ReplaceWith : R|kotlin/Annotation| {
public final val expression: R|kotlin/String|
public get(): R|kotlin/String|
@@ -1155,7 +1155,7 @@ See https://youtrack.jetbrains.com/issue/KT-46465 for details about the migratio
}
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.ANNOTATION_CLASS|)) @R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.BINARY|) @R|kotlin/SinceKotlin|(version = String(1.3)) public final annotation class RequiresOptIn : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.ANNOTATION_CLASS)) @R|kotlin/annotation/Retention|(value = kotlin/annotation/AnnotationRetention.BINARY) @R|kotlin/SinceKotlin|(version = String(1.3)) public final annotation class RequiresOptIn : R|kotlin/Annotation| {
public final val level: R|kotlin/RequiresOptIn.Level|
public get(): R|kotlin/RequiresOptIn.Level|
@@ -1336,7 +1336,7 @@ public final class ShortArray : R|kotlin/Any|, R|kotlin/Cloneable|, R|java/io/Se
}
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.CLASS|, R|kotlin/annotation/AnnotationTarget.PROPERTY|, R|kotlin/annotation/AnnotationTarget.FIELD|, R|kotlin/annotation/AnnotationTarget.CONSTRUCTOR|, R|kotlin/annotation/AnnotationTarget.FUNCTION|, R|kotlin/annotation/AnnotationTarget.PROPERTY_GETTER|, R|kotlin/annotation/AnnotationTarget.PROPERTY_SETTER|, R|kotlin/annotation/AnnotationTarget.TYPEALIAS|)) @R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.BINARY|) @R|kotlin/annotation/MustBeDocumented|() public final annotation class SinceKotlin : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.CLASS, kotlin/annotation/AnnotationTarget.PROPERTY, kotlin/annotation/AnnotationTarget.FIELD, kotlin/annotation/AnnotationTarget.CONSTRUCTOR, kotlin/annotation/AnnotationTarget.FUNCTION, kotlin/annotation/AnnotationTarget.PROPERTY_GETTER, kotlin/annotation/AnnotationTarget.PROPERTY_SETTER, kotlin/annotation/AnnotationTarget.TYPEALIAS)) @R|kotlin/annotation/Retention|(value = kotlin/annotation/AnnotationRetention.BINARY) @R|kotlin/annotation/MustBeDocumented|() public final annotation class SinceKotlin : R|kotlin/Annotation| {
public final val version: R|kotlin/String|
public get(): R|kotlin/String|
@@ -1369,7 +1369,7 @@ public final class String : R|kotlin/Comparable<kotlin/String>|, R|kotlin/CharSe
}
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.CLASS|)) @R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.BINARY|) @R|kotlin/SinceKotlin|(version = String(1.8)) @R|kotlin/ExperimentalSubclassOptIn|() public final annotation class SubclassOptInRequired : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.CLASS)) @R|kotlin/annotation/Retention|(value = kotlin/annotation/AnnotationRetention.BINARY) @R|kotlin/SinceKotlin|(version = String(1.8)) @R|kotlin/ExperimentalSubclassOptIn|() public final annotation class SubclassOptInRequired : R|kotlin/Annotation| {
public final val markerClass: R|kotlin/reflect/KClass<out kotlin/Annotation>|
public get(): R|kotlin/reflect/KClass<out kotlin/Annotation>|
@@ -1377,7 +1377,7 @@ public final class String : R|kotlin/Comparable<kotlin/String>|, R|kotlin/CharSe
}
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.CLASS|, R|kotlin/annotation/AnnotationTarget.ANNOTATION_CLASS|, R|kotlin/annotation/AnnotationTarget.TYPE_PARAMETER|, R|kotlin/annotation/AnnotationTarget.PROPERTY|, R|kotlin/annotation/AnnotationTarget.FIELD|, R|kotlin/annotation/AnnotationTarget.LOCAL_VARIABLE|, R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|, R|kotlin/annotation/AnnotationTarget.CONSTRUCTOR|, R|kotlin/annotation/AnnotationTarget.FUNCTION|, R|kotlin/annotation/AnnotationTarget.PROPERTY_GETTER|, R|kotlin/annotation/AnnotationTarget.PROPERTY_SETTER|, R|kotlin/annotation/AnnotationTarget.TYPE|, R|kotlin/annotation/AnnotationTarget.EXPRESSION|, R|kotlin/annotation/AnnotationTarget.FILE|, R|kotlin/annotation/AnnotationTarget.TYPEALIAS|)) @R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.SOURCE|) public final annotation class Suppress : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.CLASS, kotlin/annotation/AnnotationTarget.ANNOTATION_CLASS, kotlin/annotation/AnnotationTarget.TYPE_PARAMETER, kotlin/annotation/AnnotationTarget.PROPERTY, kotlin/annotation/AnnotationTarget.FIELD, kotlin/annotation/AnnotationTarget.LOCAL_VARIABLE, kotlin/annotation/AnnotationTarget.VALUE_PARAMETER, kotlin/annotation/AnnotationTarget.CONSTRUCTOR, kotlin/annotation/AnnotationTarget.FUNCTION, kotlin/annotation/AnnotationTarget.PROPERTY_GETTER, kotlin/annotation/AnnotationTarget.PROPERTY_SETTER, kotlin/annotation/AnnotationTarget.TYPE, kotlin/annotation/AnnotationTarget.EXPRESSION, kotlin/annotation/AnnotationTarget.FILE, kotlin/annotation/AnnotationTarget.TYPEALIAS)) @R|kotlin/annotation/Retention|(value = kotlin/annotation/AnnotationRetention.SOURCE) public final annotation class Suppress : R|kotlin/Annotation| {
public final val names: R|kotlin/Array<out kotlin/String>|
public get(): R|kotlin/Array<out kotlin/String>|
@@ -1409,16 +1409,15 @@ public final object Unit : R|kotlin/Any| {
}
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.TYPE|)) @R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.SOURCE|) @R|kotlin/annotation/MustBeDocumented|() public final annotation class UnsafeVariance : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.TYPE)) @R|kotlin/annotation/Retention|(value = kotlin/annotation/AnnotationRetention.SOURCE) @R|kotlin/annotation/MustBeDocumented|() public final annotation class UnsafeVariance : R|kotlin/Annotation| {
public constructor(): R|kotlin/UnsafeVariance|
}
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.CLASS|, R|kotlin/annotation/AnnotationTarget.PROPERTY|, R|kotlin/annotation/AnnotationTarget.CONSTRUCTOR|, R|kotlin/annotation/AnnotationTarget.FUNCTION|, R|kotlin/annotation/AnnotationTarget.TYPEALIAS|)) @R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.BINARY|) internal final annotation class WasExperimental : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.CLASS, kotlin/annotation/AnnotationTarget.PROPERTY, kotlin/annotation/AnnotationTarget.CONSTRUCTOR, kotlin/annotation/AnnotationTarget.FUNCTION, kotlin/annotation/AnnotationTarget.TYPEALIAS)) @R|kotlin/annotation/Retention|(value = kotlin/annotation/AnnotationRetention.BINARY) internal final annotation class WasExperimental : R|kotlin/Annotation| {
public final val markerClass: R|kotlin/Array<out kotlin/reflect/KClass<out kotlin/Annotation>>|
public get(): R|kotlin/Array<out kotlin/reflect/KClass<out kotlin/Annotation>>|
public constructor(vararg markerClass: R|kotlin/Array<out kotlin/reflect/KClass<out kotlin/Annotation>>|): R|kotlin/WasExperimental|
}
@@ -280,26 +280,9 @@ abstract class AbstractAnnotationDeserializer(
)
coneTypeOrNull = resolvedType
}
ENUM -> buildPropertyAccessExpression {
val classId = nameResolver.getClassId(value.classId)
val entryName = nameResolver.getName(value.enumValueId)
val enumLookupTag = classId.toLookupTag()
val enumSymbol = enumLookupTag.toSymbol(session)
val firClass = enumSymbol?.fir as? FirRegularClass
val enumEntries = firClass?.collectEnumEntries() ?: emptyList()
val enumEntrySymbol = enumEntries.find { it.name == entryName }
calleeReference = enumEntrySymbol?.let {
buildResolvedNamedReference {
name = entryName
resolvedSymbol = it.symbol
}
} ?: buildFromMissingDependenciesNamedReference {
name = entryName
}
if (enumEntrySymbol != null) {
coneTypeOrNull = enumEntrySymbol.returnTypeRef.coneTypeOrNull
}
ENUM -> buildEnumEntryDeserializedAccessExpression {
enumClassId = nameResolver.getClassId(value.classId)
enumEntryName = nameResolver.getName(value.enumValueId)
}
ARRAY -> {
val expectedArrayElementType = expectedType()?.arrayElementType() ?: session.builtinTypes.anyType.type
@@ -12,10 +12,12 @@ import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind
import org.jetbrains.kotlin.fir.expressions.FirEnumEntryDeserializedAccessExpression
import org.jetbrains.kotlin.fir.expressions.FirPropertyAccessExpression
import org.jetbrains.kotlin.fir.expressions.builder.buildPropertyAccessExpression
import org.jetbrains.kotlin.fir.expressions.builder.buildResolvedQualifier
import org.jetbrains.kotlin.fir.references.builder.buildErrorNamedReference
import org.jetbrains.kotlin.fir.references.builder.buildResolvedNamedReference
import org.jetbrains.kotlin.fir.resolve.providers.getClassDeclaredPropertySymbols
import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
import org.jetbrains.kotlin.fir.resolve.toSymbol
import org.jetbrains.kotlin.fir.types.ConeTypeProjection
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
import org.jetbrains.kotlin.fir.types.toLookupTag
@@ -43,7 +45,16 @@ fun FirEnumEntryDeserializedAccessExpression.toQualifiedPropertyAccessExpression
}
}
coneTypeOrNull = ConeClassLikeTypeImpl(
enumClassId.toLookupTag(), ConeTypeProjection.EMPTY_ARRAY, isNullable = false
)
val enumClassLookupTag = enumClassId.toLookupTag()
val enumClassType = ConeClassLikeTypeImpl(enumClassLookupTag, ConeTypeProjection.EMPTY_ARRAY, isNullable = false)
coneTypeOrNull = enumClassType
val receiver = buildResolvedQualifier {
coneTypeOrNull = enumClassType
packageFqName = enumClassId.packageFqName
relativeClassFqName = enumClassId.relativeClassName
symbol = enumClassLookupTag.toSymbol(session)
}
dispatchReceiver = receiver
explicitReceiver = receiver
}
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.java.deserialization
import org.jetbrains.kotlin.SpecialJvmAnnotations
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.deserialization.toQualifiedPropertyAccessExpression
import org.jetbrains.kotlin.fir.expressions.*
import org.jetbrains.kotlin.fir.expressions.builder.*
import org.jetbrains.kotlin.fir.java.createConstantOrError
@@ -25,7 +24,7 @@ import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType
import org.jetbrains.kotlin.utils.toMetadataVersion
internal class AnnotationsLoader(private val session: FirSession, private val kotlinClassFinder: KotlinClassFinder) {
private abstract inner class AnnotationsLoaderVisitorImpl(val enumEntryReferenceCreator: (ClassId, Name) -> FirExpression) : KotlinJvmBinaryClass.AnnotationArgumentVisitor {
private abstract inner class AnnotationsLoaderVisitorImpl : KotlinJvmBinaryClass.AnnotationArgumentVisitor {
abstract fun visitExpression(name: Name?, expr: FirExpression)
abstract val visitNullNames: Boolean
@@ -54,7 +53,7 @@ internal class AnnotationsLoader(private val session: FirSession, private val ko
override fun visitEnum(name: Name?, enumClassId: ClassId, enumEntryName: Name) {
if (name == null && !visitNullNames) return
visitExpression(name, enumEntryReferenceCreator(enumClassId, enumEntryName))
visitExpression(name, createEnumEntryAccess(enumClassId, enumEntryName))
}
override fun visitArray(name: Name?): KotlinJvmBinaryClass.AnnotationArrayArgumentVisitor? {
@@ -67,7 +66,7 @@ internal class AnnotationsLoader(private val session: FirSession, private val ko
}
override fun visitEnum(enumClassId: ClassId, enumEntryName: Name) {
elements.add(enumEntryReferenceCreator(enumClassId, enumEntryName))
elements.add(createEnumEntryAccess(enumClassId, enumEntryName))
}
override fun visitClassLiteral(value: ClassLiteralValue) {
@@ -80,7 +79,7 @@ internal class AnnotationsLoader(private val session: FirSession, private val ko
override fun visitAnnotation(classId: ClassId): KotlinJvmBinaryClass.AnnotationArgumentVisitor {
val list = mutableListOf<FirAnnotation>()
val visitor = loadAnnotation(classId, list, enumEntryReferenceCreator)
val visitor = loadAnnotation(classId, list)
return object : KotlinJvmBinaryClass.AnnotationArgumentVisitor by visitor {
override fun visitEnd() {
visitor.visitEnd()
@@ -120,7 +119,7 @@ internal class AnnotationsLoader(private val session: FirSession, private val ko
override fun visitAnnotation(name: Name?, classId: ClassId): KotlinJvmBinaryClass.AnnotationArgumentVisitor? {
if (name == null && !visitNullNames) return null
val list = mutableListOf<FirAnnotation>()
val visitor = loadAnnotation(classId, list, enumEntryReferenceCreator)
val visitor = loadAnnotation(classId, list)
return object : KotlinJvmBinaryClass.AnnotationArgumentVisitor by visitor {
override fun visitEnd() {
visitor.visitEnd()
@@ -135,11 +134,12 @@ internal class AnnotationsLoader(private val session: FirSession, private val ko
}
private fun loadAnnotation(
annotationClassId: ClassId, result: MutableList<FirAnnotation>, enumEntryReferenceCreator: (ClassId, Name) -> FirExpression
annotationClassId: ClassId,
result: MutableList<FirAnnotation>
): KotlinJvmBinaryClass.AnnotationArgumentVisitor {
val lookupTag = annotationClassId.toLookupTag()
return object : AnnotationsLoaderVisitorImpl(enumEntryReferenceCreator) {
return object : AnnotationsLoaderVisitorImpl() {
private val argumentMap = mutableMapOf<Name, FirExpression>()
override fun visitExpression(name: Name?, expr: FirExpression) {
@@ -174,7 +174,7 @@ internal class AnnotationsLoader(private val session: FirSession, private val ko
methodSignature: MemberSignature,
consumeResult: (FirExpression) -> Unit
): KotlinJvmBinaryClass.AnnotationArgumentVisitor {
return object : AnnotationsLoaderVisitorImpl(this::toEnumEntryReferenceExpressionUnresolved) {
return object : AnnotationsLoaderVisitorImpl() {
var defaultValue: FirExpression? = null
override fun visitExpression(name: Name?, expr: FirExpression) {
@@ -219,7 +219,7 @@ internal class AnnotationsLoader(private val session: FirSession, private val ko
): KotlinJvmBinaryClass.AnnotationArgumentVisitor? {
if (annotationClassId in SpecialJvmAnnotations.SPECIAL_ANNOTATIONS) return null
// Note: we shouldn't resolve enum entries here either: KT-58294
return loadAnnotation(annotationClassId, result, this::toEnumEntryReferenceExpressionWithResolve)
return loadAnnotation(annotationClassId, result)
}
private fun ConeClassLikeLookupTag.toDefaultResolvedTypeRef(): FirResolvedTypeRef =
@@ -227,10 +227,7 @@ internal class AnnotationsLoader(private val session: FirSession, private val ko
type = constructClassType(emptyArray(), isNullable = false)
}
private fun toEnumEntryReferenceExpressionWithResolve(classId: ClassId, name: Name): FirPropertyAccessExpression =
toEnumEntryReferenceExpressionUnresolved(classId, name).toQualifiedPropertyAccessExpression(session)
private fun toEnumEntryReferenceExpressionUnresolved(classId: ClassId, name: Name): FirEnumEntryDeserializedAccessExpression =
private fun createEnumEntryAccess(classId: ClassId, name: Name): FirEnumEntryDeserializedAccessExpression =
buildEnumEntryDeserializedAccessExpression {
enumClassId = classId
enumEntryName = name
@@ -7,10 +7,20 @@ package org.jetbrains.kotlin.fir.expressions
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.collectEnumEntries
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
import org.jetbrains.kotlin.fir.references.FirReference
import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
import org.jetbrains.kotlin.fir.references.builder.buildErrorNamedReference
import org.jetbrains.kotlin.fir.references.builder.buildResolvedNamedReference
import org.jetbrains.kotlin.fir.references.resolved
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeUnresolvedNameError
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeUnresolvedSymbolError
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
import org.jetbrains.kotlin.fir.types.classId
import org.jetbrains.kotlin.fir.types.resolvedType
import org.jetbrains.kotlin.fir.types.toRegularClassSymbol
@RequiresOptIn(level = RequiresOptIn.Level.ERROR)
annotation class UnsafeExpressionUtility
@@ -49,6 +59,10 @@ fun FirExpression.toReferenceUnsafe(): FirReference? {
private fun FirExpression.toReferenceImpl(session: FirSession?): FirReference? {
return when (this) {
is FirEnumEntryDeserializedAccessExpression -> {
requireNotNull(session)
toReference(session)
}
is FirWrappedArgumentExpression -> expression.toResolvedCallableReferenceImpl(session)
is FirSmartCastExpression -> originalExpression.toReferenceImpl(session)
is FirDesugaredAssignmentValueReferenceExpression -> expressionRef.value.toReferenceImpl(session)
@@ -57,6 +71,24 @@ private fun FirExpression.toReferenceImpl(session: FirSession?): FirReference? {
}
}
fun FirEnumEntryDeserializedAccessExpression.toReference(session: FirSession): FirReference {
fun createErrorReference(diagnostic: ConeDiagnostic): FirErrorNamedReference {
return buildErrorNamedReference {
this.diagnostic = diagnostic
}
}
val enumSymbol = this.resolvedType.toRegularClassSymbol(session)
?: return createErrorReference(ConeUnresolvedSymbolError(resolvedType.classId!!))
val enumEntrySymbol = enumSymbol.collectEnumEntries().firstOrNull { it.name == enumEntryName }
?: return createErrorReference(ConeUnresolvedNameError(enumEntryName))
return buildResolvedNamedReference {
name = enumEntryName
resolvedSymbol = enumEntrySymbol
}
}
val FirVariableAssignment.calleeReference: FirReference?
get() {
// non-nullable session for `toReferenceImpl` is needed only for `FirEnumEntryDeserializedAccessExpression` value,
@@ -3,7 +3,7 @@ public final class Convert<@R|test/Schema|() T, C> : R|kotlin/Any| {
}
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.TYPE_PARAMETER|)) public final annotation class Schema : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.TYPE_PARAMETER)) public final annotation class Schema : R|kotlin/Annotation| {
public constructor(): R|test/Schema|
}
@@ -6,7 +6,7 @@ public final annotation class Ann : R|kotlin/Annotation| {
}
@R|test/MyRequiresOptIn|(a = String(), b = R|test/MyRequiresOptIn.MyLevel.ERROR|) public final annotation class MyRequiresOptIn : R|kotlin/Annotation| {
@R|test/MyRequiresOptIn|(a = String(), b = test/MyRequiresOptIn.MyLevel.ERROR) public final annotation class MyRequiresOptIn : R|kotlin/Annotation| {
public final val a: R|kotlin/String| = String()
public get(): R|kotlin/String|
@@ -6,7 +6,7 @@ public final annotation class Ann : R|kotlin/Annotation| {
}
@R|test/MyRequiresOptIn|(a = String(), b = R|test/MyRequiresOptIn.MyLevel.ERROR|) public final annotation class MyRequiresOptIn : R|kotlin/Annotation| {
@R|test/MyRequiresOptIn|(a = String(), b = test/MyRequiresOptIn.MyLevel.ERROR) public final annotation class MyRequiresOptIn : R|kotlin/Annotation| {
public final val a: R|kotlin/String| = String()
public get(): R|kotlin/String|
@@ -6,14 +6,14 @@ public final annotation class Ann : R|kotlin/Annotation| {
}
@R|test/MyRequiresOptIn|(a = String(), b = R|test/MyRequiresOptIn.MyLevel.ERROR|) public final annotation class MyRequiresOptIn : R|kotlin/Annotation| {
@R|test/MyRequiresOptIn|(a = String(), b = test/MyRequiresOptIn.MyLevel.ERROR) public final annotation class MyRequiresOptIn : R|kotlin/Annotation| {
public final val a: R|kotlin/String|
public get(): R|kotlin/String|
public final val b: R|test/MyRequiresOptIn.MyLevel|
public get(): R|test/MyRequiresOptIn.MyLevel|
public constructor(a: R|kotlin/String| = STUB, @R|test/MyRequiresOptIn|(a = String(), b = R|test/MyRequiresOptIn.MyLevel.WARNING|) b: R|test/MyRequiresOptIn.MyLevel| = STUB): R|test/MyRequiresOptIn|
public constructor(a: R|kotlin/String| = STUB, @R|test/MyRequiresOptIn|(a = String(), b = test/MyRequiresOptIn.MyLevel.WARNING) b: R|test/MyRequiresOptIn.MyLevel| = STUB): R|test/MyRequiresOptIn|
public final enum class MyLevel : R|kotlin/Enum<test/MyRequiresOptIn.MyLevel>| {
private constructor(): R|test/MyRequiresOptIn.MyLevel|
@@ -1,4 +1,4 @@
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.CLASS|)) public final annotation class TargetedAnnotation : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.CLASS)) public final annotation class TargetedAnnotation : R|kotlin/Annotation| {
public constructor(): R|test/TargetedAnnotation|
}
@@ -7,9 +7,9 @@ public final annotation class Anno : R|kotlin/Annotation| {
}
public final class Class : R|kotlin/Any| {
@R|test/Anno|(t = R|java/lang/annotation/ElementType.METHOD|) public final fun foo(): R|kotlin/Unit|
@R|test/Anno|(t = java/lang/annotation/ElementType.METHOD) public final fun foo(): R|kotlin/Unit|
field:@FIELD:R|test/Anno|(t = R|java/lang/annotation/ElementType.FIELD|) public final var bar: R|kotlin/Int|
field:@FIELD:R|test/Anno|(t = java/lang/annotation/ElementType.FIELD) public final var bar: R|kotlin/Int|
public get(): R|kotlin/Int|
public set(value: R|kotlin/Int|): R|kotlin/Unit|
@@ -6,20 +6,20 @@ public final annotation class Anno : R|kotlin/Annotation| {
}
@R|test/Anno|(t = R|java/lang/annotation/ElementType.METHOD|) public final class Class : R|kotlin/Any| {
@R|test/Anno|(t = java/lang/annotation/ElementType.METHOD) public final class Class : R|kotlin/Any| {
public constructor(): R|test/Class|
@R|test/Anno|(t = R|java/lang/annotation/ElementType.ANNOTATION_TYPE|) public final companion object Companion : R|kotlin/Any| {
@R|test/Anno|(t = java/lang/annotation/ElementType.ANNOTATION_TYPE) public final companion object Companion : R|kotlin/Any| {
private constructor(): R|test/Class.Companion|
}
@R|test/Anno|(t = R|java/lang/annotation/ElementType.PARAMETER|) public final inner class Inner : R|kotlin/Any| {
@R|test/Anno|(t = java/lang/annotation/ElementType.PARAMETER) public final inner class Inner : R|kotlin/Any| {
public test/Class.constructor(): R|test/Class.Inner|
}
@R|test/Anno|(t = R|java/lang/annotation/ElementType.TYPE|) public final class Nested : R|kotlin/Any| {
@R|test/Anno|(t = java/lang/annotation/ElementType.TYPE) public final class Nested : R|kotlin/Any| {
public constructor(): R|test/Class.Nested|
}
@@ -6,20 +6,20 @@ public final annotation class Anno : R|kotlin/Annotation| {
}
@R|test/Anno|(t = R|java/lang/annotation/ElementType.METHOD|) public final class Class : R|kotlin/Any| {
@R|test/Anno|(t = java/lang/annotation/ElementType.METHOD) public final class Class : R|kotlin/Any| {
public constructor(): R|test/Class|
@R|test/Anno|(t = R|java/lang/annotation/ElementType.PARAMETER|) public final inner class Inner : R|kotlin/Any| {
@R|test/Anno|(t = java/lang/annotation/ElementType.PARAMETER) public final inner class Inner : R|kotlin/Any| {
public test/Class.constructor(): R|test/Class.Inner|
}
@R|test/Anno|(t = R|java/lang/annotation/ElementType.TYPE|) public final class Nested : R|kotlin/Any| {
@R|test/Anno|(t = java/lang/annotation/ElementType.TYPE) public final class Nested : R|kotlin/Any| {
public constructor(): R|test/Class.Nested|
}
@R|test/Anno|(t = R|java/lang/annotation/ElementType.ANNOTATION_TYPE|) public final companion object Companion : R|kotlin/Any| {
@R|test/Anno|(t = java/lang/annotation/ElementType.ANNOTATION_TYPE) public final companion object Companion : R|kotlin/Any| {
private constructor(): R|test/Class.Companion|
}
@@ -1,4 +1,4 @@
@R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.RUNTIME|) public final annotation class Anno : R|kotlin/Annotation| {
@R|kotlin/annotation/Retention|(value = kotlin/annotation/AnnotationRetention.RUNTIME) public final annotation class Anno : R|kotlin/Annotation| {
public constructor(): R|test/Anno|
}
@@ -1,7 +1,7 @@
field:@FIELD:R|test/Anno|(t = R|java/lang/annotation/ElementType.FIELD|) public final val bar: R|kotlin/Int|
field:@FIELD:R|test/Anno|(t = java/lang/annotation/ElementType.FIELD) public final val bar: R|kotlin/Int|
public get(): R|kotlin/Int|
@R|test/Anno|(t = R|java/lang/annotation/ElementType.METHOD|) public final fun foo(): R|kotlin/Unit|
@R|test/Anno|(t = java/lang/annotation/ElementType.METHOD) public final fun foo(): R|kotlin/Unit|
public final annotation class Anno : R|kotlin/Annotation| {
public final val t: R|java/lang/annotation/ElementType|
@@ -10,4 +10,3 @@ public final annotation class Anno : R|kotlin/Annotation| {
public constructor(t: R|java/lang/annotation/ElementType|): R|test/Anno|
}
@@ -1,9 +1,9 @@
field:@FIELD:R|test/Anno|(t = <implicitArrayOf>(R|java/lang/annotation/ElementType.PACKAGE|)) public final val bar: R|kotlin/Int|
field:@FIELD:R|test/Anno|(t = <implicitArrayOf>(java/lang/annotation/ElementType.PACKAGE)) public final val bar: R|kotlin/Int|
public get(): R|kotlin/Int|
@R|test/Anno|(t = <implicitArrayOf>()) public final fun baz(): R|kotlin/Unit|
@R|test/Anno|(t = <implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|, R|java/lang/annotation/ElementType.FIELD|)) public final fun foo(): R|kotlin/Unit|
@R|test/Anno|(t = <implicitArrayOf>(java/lang/annotation/ElementType.METHOD, java/lang/annotation/ElementType.FIELD)) public final fun foo(): R|kotlin/Unit|
public final annotation class Anno : R|kotlin/Annotation| {
public final val t: R|kotlin/Array<out java/lang/annotation/ElementType>|
@@ -12,4 +12,3 @@ public final annotation class Anno : R|kotlin/Annotation| {
public constructor(vararg t: R|kotlin/Array<out java/lang/annotation/ElementType>|): R|test/Anno|
}
@@ -11,7 +11,7 @@ public final class A : R|kotlin/Any| {
}
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.TYPE|)) public final annotation class Ann : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.TYPE)) public final annotation class Ann : R|kotlin/Annotation| {
public final val klass: R|kotlin/reflect/KClass<*>|
public get(): R|kotlin/reflect/KClass<*>|
@@ -11,7 +11,7 @@ public final class A : R|kotlin/Any| {
}
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.TYPE|)) public final annotation class Ann : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.TYPE)) public final annotation class Ann : R|kotlin/Annotation| {
public final val klass: R|kotlin/reflect/KClass<*>|
public get(): R|kotlin/reflect/KClass<*>|
@@ -1,6 +1,6 @@
public final fun R|@R|test/A|() kotlin/String|.foo(): R|kotlin/Unit|
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.TYPE|)) public final annotation class A : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.TYPE)) public final annotation class A : R|kotlin/Annotation| {
public constructor(): R|test/A|
}
@@ -1,4 +1,4 @@
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.TYPE|)) public final annotation class A : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.TYPE)) public final annotation class A : R|kotlin/Annotation| {
public constructor(): R|test/A|
}
@@ -1,6 +1,6 @@
public final fun typeAnnotation(): R|kotlin/Unit|
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.TYPE_PARAMETER|, R|kotlin/annotation/AnnotationTarget.TYPEALIAS|, R|kotlin/annotation/AnnotationTarget.TYPE|)) @R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.SOURCE|) public final annotation class A : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.TYPE_PARAMETER, kotlin/annotation/AnnotationTarget.TYPEALIAS, kotlin/annotation/AnnotationTarget.TYPE)) @R|kotlin/annotation/Retention|(value = kotlin/annotation/AnnotationRetention.SOURCE) public final annotation class A : R|kotlin/Annotation| {
public constructor(): R|test/A|
}
@@ -13,4 +13,3 @@ public final class TypeParameterAnnotation : R|kotlin/Any| {
public constructor(): R|test/TypeParameterAnnotation|
}
@@ -1,4 +1,4 @@
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.TYPE|)) public final annotation class A : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.TYPE)) public final annotation class A : R|kotlin/Annotation| {
public constructor(): R|test/A|
}
@@ -1,4 +1,4 @@
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.TYPE|)) public final annotation class A : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.TYPE)) public final annotation class A : R|kotlin/Annotation| {
public constructor(): R|test/A|
}
@@ -1,4 +1,4 @@
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.TYPE|)) public final annotation class A : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.TYPE)) public final annotation class A : R|kotlin/Annotation| {
public constructor(): R|test/A|
}
@@ -1,4 +1,4 @@
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.TYPE|)) public final annotation class Ann : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.TYPE)) public final annotation class Ann : R|kotlin/Annotation| {
public final val x: R|kotlin/String|
public get(): R|kotlin/String|
@@ -1,6 +1,6 @@
public final fun foo(bar: R|kotlin/collections/Map<@R|test/A|() kotlin/String, kotlin/collections/List<@R|test/A|() kotlin/Int>>|): R|kotlin/Unit|
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.TYPE|)) public final annotation class A : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.TYPE)) public final annotation class A : R|kotlin/Annotation| {
public constructor(): R|test/A|
}
@@ -1,4 +1,4 @@
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.TYPE_PARAMETER|)) public final annotation class A : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.TYPE_PARAMETER)) public final annotation class A : R|kotlin/Annotation| {
public constructor(): R|test/A|
}
@@ -1,4 +1,4 @@
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.TYPE_PARAMETER|)) public final annotation class A : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.TYPE_PARAMETER)) public final annotation class A : R|kotlin/Annotation| {
public final val x: R|kotlin/String|
public get(): R|kotlin/String|
@@ -12,7 +12,7 @@ public final class A : R|kotlin/Any| {
}
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|)) public final annotation class Ann : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.VALUE_PARAMETER)) public final annotation class Ann : R|kotlin/Annotation| {
public constructor(): R|test/Ann|
}
@@ -12,7 +12,7 @@ public final class A : R|kotlin/Any| {
}
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|)) public final annotation class Ann : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.VALUE_PARAMETER)) public final annotation class Ann : R|kotlin/Annotation| {
public constructor(): R|test/Ann|
}
@@ -12,7 +12,7 @@ public final class A : R|kotlin/Any| {
}
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|)) public final annotation class Ann : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.VALUE_PARAMETER)) public final annotation class Ann : R|kotlin/Annotation| {
public constructor(): R|test/Ann|
}
@@ -2,11 +2,10 @@
@R|test/Ann|(value = String(OK)) public final typealias A2 = R|kotlin/String|
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.TYPEALIAS|)) public final annotation class Ann : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.TYPEALIAS)) public final annotation class Ann : R|kotlin/Annotation| {
public final val value: R|kotlin/String| = String()
public get(): R|kotlin/String|
public constructor(value: R|kotlin/String| = STUB): R|test/Ann|
}
@@ -2,11 +2,10 @@
@R|test/Ann|(value = String(OK)) public final typealias A2 = R|kotlin/String|
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.TYPEALIAS|)) public final annotation class Ann : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.TYPEALIAS)) public final annotation class Ann : R|kotlin/Annotation| {
public final val value: R|kotlin/String| = String()
public get(): R|kotlin/String|
public constructor(value: R|kotlin/String| = STUB): R|test/Ann|
}
@@ -2,7 +2,7 @@
@R|test/Ann|(value = String(OK)) public final typealias A2 = R|kotlin/String|
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.TYPEALIAS|)) public final annotation class Ann : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.TYPEALIAS)) public final annotation class Ann : R|kotlin/Annotation| {
public final val value: R|kotlin/String|
public get(): R|kotlin/String|
@@ -1,4 +1,4 @@
@R|test/OptionGroups|(o1 = @R|test/StringOptions|(option = <implicitArrayOf>(String(abc), String(d), String(ef))) , o2 = @R|test/EnumOption|(option = R|test/E.ENTRY|) ) public final class AnnotationInAnnotationArguments : R|kotlin/Any| {
@R|test/OptionGroups|(o1 = @R|test/StringOptions|(option = <implicitArrayOf>(String(abc), String(d), String(ef))) , o2 = @R|test/EnumOption|(option = test/E.ENTRY) ) public final class AnnotationInAnnotationArguments : R|kotlin/Any| {
public constructor(): R|test/AnnotationInAnnotationArguments|
}
@@ -22,7 +22,7 @@ public final annotation class EnumAnno : R|kotlin/Annotation| {
}
public final class EnumArgumentWithCustomToString : R|kotlin/Any| {
@R|test/EnumAnno|(value = R|test/E.CAKE|) @R|test/EnumArrayAnno|(value = <implicitArrayOf>(R|test/E.CAKE|, R|test/E.CAKE|)) public final fun annotated(): R|kotlin/Unit|
@R|test/EnumAnno|(value = test/E.CAKE) @R|test/EnumArrayAnno|(value = <implicitArrayOf>(test/E.CAKE, test/E.CAKE)) public final fun annotated(): R|kotlin/Unit|
public constructor(): R|test/EnumArgumentWithCustomToString|
@@ -21,7 +21,7 @@ public final class A : R|kotlin/Any| {
}
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.TYPE|, R|kotlin/annotation/AnnotationTarget.TYPE_PARAMETER|)) public final annotation class Ann : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.TYPE, kotlin/annotation/AnnotationTarget.TYPE_PARAMETER)) public final annotation class Ann : R|kotlin/Annotation| {
public final val ubyte: R|kotlin/UByte|
public get(): R|kotlin/UByte|
@@ -21,7 +21,7 @@ public final class A : R|kotlin/Any| {
}
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.TYPE|, R|kotlin/annotation/AnnotationTarget.TYPE_PARAMETER|)) public final annotation class Ann : R|kotlin/Annotation| {
@R|kotlin/annotation/Target|(allowedTargets = <implicitArrayOf>(kotlin/annotation/AnnotationTarget.TYPE, kotlin/annotation/AnnotationTarget.TYPE_PARAMETER)) public final annotation class Ann : R|kotlin/Annotation| {
public final val ubyte: R|kotlin/UByte|
public get(): R|kotlin/UByte|