[FIR] FirJavaFacade: calculate default value for annotations lazily

To avoid contract violation

^KT-62776 Fixed
This commit is contained in:
Dmitrii Gridin
2023-12-20 15:26:22 +01:00
committed by Space Team
parent b90ff94451
commit 48c36ce475
8 changed files with 335 additions and 9 deletions
@@ -0,0 +1,21 @@
// SKIP_WHEN_OUT_OF_CONTENT_ROOT
// FILE: ArrayAnnUsage.kt
package light.ann.array
import light.ann.array.AnnAuxEnum.ANN_ENUM_VAL_A;
import light.ann.array.AnnAuxEnum.ANN_ENUM_VAL_B;
enum class AnnAuxEnum { ANN_ENUM_VAL_A, ANN_ENUM_VAL_B }
@ArrayAnnEnumJava(enumValDef = arrayOf(ANN_ENUM_VAL_A, ANN_ENUM_VAL_B))
fun bo<caret>x() = "OK"
// FILE: ArrayAnnEnumJava.java
package light.ann.array;
import static light.ann.array.AnnAuxEnum.ANN_ENUM_VAL_A;
import static light.ann.array.AnnAuxEnum.ANN_ENUM_VAL_B;
public @interface ArrayAnnEnumJava {
AnnAuxEnum[] enumValDef() default { ANN_ENUM_VAL_A, ANN_ENUM_VAL_B };
}
@@ -0,0 +1,280 @@
RAW_FIR:
FILE: [ResolvedTo(RAW_FIR)] ArrayAnnUsage.kt
public? final? [ResolvedTo(RAW_FIR)] enum class AnnAuxEnum : R|kotlin/Enum<light/ann/array/AnnAuxEnum>| {
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] constructor(): R|light/ann/array/AnnAuxEnum| {
LAZY_super<R|kotlin/Enum<light/ann/array/AnnAuxEnum>|>
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] enum entry ANN_ENUM_VAL_A: R|light/ann/array/AnnAuxEnum|
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] enum entry ANN_ENUM_VAL_B: R|light/ann/array/AnnAuxEnum|
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] fun values(): R|kotlin/Array<light/ann/array/AnnAuxEnum>| {
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] fun valueOf([ResolvedTo(RAW_FIR)] value: R|kotlin/String|): R|light/ann/array/AnnAuxEnum| {
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] val entries: R|kotlin/enums/EnumEntries<light/ann/array/AnnAuxEnum>|
public [ResolvedTo(RAW_FIR)] get(): R|kotlin/enums/EnumEntries<light/ann/array/AnnAuxEnum>|
}
@ArrayAnnEnumJava[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] fun box(): <implicit> { LAZY_BLOCK }
IMPORTS:
FILE: [ResolvedTo(IMPORTS)] ArrayAnnUsage.kt
public? final? [ResolvedTo(RAW_FIR)] enum class AnnAuxEnum : R|kotlin/Enum<light/ann/array/AnnAuxEnum>| {
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] constructor(): R|light/ann/array/AnnAuxEnum| {
LAZY_super<R|kotlin/Enum<light/ann/array/AnnAuxEnum>|>
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] enum entry ANN_ENUM_VAL_A: R|light/ann/array/AnnAuxEnum|
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] enum entry ANN_ENUM_VAL_B: R|light/ann/array/AnnAuxEnum|
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] fun values(): R|kotlin/Array<light/ann/array/AnnAuxEnum>| {
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] fun valueOf([ResolvedTo(RAW_FIR)] value: R|kotlin/String|): R|light/ann/array/AnnAuxEnum| {
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] val entries: R|kotlin/enums/EnumEntries<light/ann/array/AnnAuxEnum>|
public [ResolvedTo(RAW_FIR)] get(): R|kotlin/enums/EnumEntries<light/ann/array/AnnAuxEnum>|
}
@ArrayAnnEnumJava[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] fun box(): <implicit> { LAZY_BLOCK }
COMPILER_REQUIRED_ANNOTATIONS:
FILE: [ResolvedTo(IMPORTS)] ArrayAnnUsage.kt
public? final? [ResolvedTo(RAW_FIR)] enum class AnnAuxEnum : R|kotlin/Enum<light/ann/array/AnnAuxEnum>| {
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] constructor(): R|light/ann/array/AnnAuxEnum| {
LAZY_super<R|kotlin/Enum<light/ann/array/AnnAuxEnum>|>
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] enum entry ANN_ENUM_VAL_A: R|light/ann/array/AnnAuxEnum|
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] enum entry ANN_ENUM_VAL_B: R|light/ann/array/AnnAuxEnum|
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] fun values(): R|kotlin/Array<light/ann/array/AnnAuxEnum>| {
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] fun valueOf([ResolvedTo(RAW_FIR)] value: R|kotlin/String|): R|light/ann/array/AnnAuxEnum| {
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] val entries: R|kotlin/enums/EnumEntries<light/ann/array/AnnAuxEnum>|
public [ResolvedTo(RAW_FIR)] get(): R|kotlin/enums/EnumEntries<light/ann/array/AnnAuxEnum>|
}
@ArrayAnnEnumJava[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] fun box(): <implicit> { LAZY_BLOCK }
COMPANION_GENERATION:
FILE: [ResolvedTo(IMPORTS)] ArrayAnnUsage.kt
public? final? [ResolvedTo(RAW_FIR)] enum class AnnAuxEnum : R|kotlin/Enum<light/ann/array/AnnAuxEnum>| {
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] constructor(): R|light/ann/array/AnnAuxEnum| {
LAZY_super<R|kotlin/Enum<light/ann/array/AnnAuxEnum>|>
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] enum entry ANN_ENUM_VAL_A: R|light/ann/array/AnnAuxEnum|
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] enum entry ANN_ENUM_VAL_B: R|light/ann/array/AnnAuxEnum|
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] fun values(): R|kotlin/Array<light/ann/array/AnnAuxEnum>| {
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] fun valueOf([ResolvedTo(RAW_FIR)] value: R|kotlin/String|): R|light/ann/array/AnnAuxEnum| {
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] val entries: R|kotlin/enums/EnumEntries<light/ann/array/AnnAuxEnum>|
public [ResolvedTo(RAW_FIR)] get(): R|kotlin/enums/EnumEntries<light/ann/array/AnnAuxEnum>|
}
@ArrayAnnEnumJava[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(COMPANION_GENERATION)] fun box(): <implicit> { LAZY_BLOCK }
SUPER_TYPES:
FILE: [ResolvedTo(IMPORTS)] ArrayAnnUsage.kt
public? final? [ResolvedTo(RAW_FIR)] enum class AnnAuxEnum : R|kotlin/Enum<light/ann/array/AnnAuxEnum>| {
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] constructor(): R|light/ann/array/AnnAuxEnum| {
LAZY_super<R|kotlin/Enum<light/ann/array/AnnAuxEnum>|>
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] enum entry ANN_ENUM_VAL_A: R|light/ann/array/AnnAuxEnum|
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] enum entry ANN_ENUM_VAL_B: R|light/ann/array/AnnAuxEnum|
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] fun values(): R|kotlin/Array<light/ann/array/AnnAuxEnum>| {
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] fun valueOf([ResolvedTo(RAW_FIR)] value: R|kotlin/String|): R|light/ann/array/AnnAuxEnum| {
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] val entries: R|kotlin/enums/EnumEntries<light/ann/array/AnnAuxEnum>|
public [ResolvedTo(RAW_FIR)] get(): R|kotlin/enums/EnumEntries<light/ann/array/AnnAuxEnum>|
}
@ArrayAnnEnumJava[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(SUPER_TYPES)] fun box(): <implicit> { LAZY_BLOCK }
TYPES:
FILE: [ResolvedTo(IMPORTS)] ArrayAnnUsage.kt
public? final? [ResolvedTo(RAW_FIR)] enum class AnnAuxEnum : R|kotlin/Enum<light/ann/array/AnnAuxEnum>| {
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] constructor(): R|light/ann/array/AnnAuxEnum| {
LAZY_super<R|kotlin/Enum<light/ann/array/AnnAuxEnum>|>
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] enum entry ANN_ENUM_VAL_A: R|light/ann/array/AnnAuxEnum|
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] enum entry ANN_ENUM_VAL_B: R|light/ann/array/AnnAuxEnum|
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] fun values(): R|kotlin/Array<light/ann/array/AnnAuxEnum>| {
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] fun valueOf([ResolvedTo(RAW_FIR)] value: R|kotlin/String|): R|light/ann/array/AnnAuxEnum| {
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] val entries: R|kotlin/enums/EnumEntries<light/ann/array/AnnAuxEnum>|
public [ResolvedTo(RAW_FIR)] get(): R|kotlin/enums/EnumEntries<light/ann/array/AnnAuxEnum>|
}
@R|light/ann/array/ArrayAnnEnumJava|[Types](LAZY_EXPRESSION) public? final? [ResolvedTo(TYPES)] fun box(): <implicit> { LAZY_BLOCK }
STATUS:
FILE: [ResolvedTo(IMPORTS)] ArrayAnnUsage.kt
public? final? [ResolvedTo(RAW_FIR)] enum class AnnAuxEnum : R|kotlin/Enum<light/ann/array/AnnAuxEnum>| {
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] constructor(): R|light/ann/array/AnnAuxEnum| {
LAZY_super<R|kotlin/Enum<light/ann/array/AnnAuxEnum>|>
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] enum entry ANN_ENUM_VAL_A: R|light/ann/array/AnnAuxEnum|
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] enum entry ANN_ENUM_VAL_B: R|light/ann/array/AnnAuxEnum|
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] fun values(): R|kotlin/Array<light/ann/array/AnnAuxEnum>| {
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] fun valueOf([ResolvedTo(RAW_FIR)] value: R|kotlin/String|): R|light/ann/array/AnnAuxEnum| {
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] val entries: R|kotlin/enums/EnumEntries<light/ann/array/AnnAuxEnum>|
public [ResolvedTo(RAW_FIR)] get(): R|kotlin/enums/EnumEntries<light/ann/array/AnnAuxEnum>|
}
@R|light/ann/array/ArrayAnnEnumJava|[Types](LAZY_EXPRESSION) public final [ResolvedTo(STATUS)] fun box(): <implicit> { LAZY_BLOCK }
EXPECT_ACTUAL_MATCHING:
FILE: [ResolvedTo(IMPORTS)] ArrayAnnUsage.kt
public? final? [ResolvedTo(RAW_FIR)] enum class AnnAuxEnum : R|kotlin/Enum<light/ann/array/AnnAuxEnum>| {
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] constructor(): R|light/ann/array/AnnAuxEnum| {
LAZY_super<R|kotlin/Enum<light/ann/array/AnnAuxEnum>|>
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] enum entry ANN_ENUM_VAL_A: R|light/ann/array/AnnAuxEnum|
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] enum entry ANN_ENUM_VAL_B: R|light/ann/array/AnnAuxEnum|
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] fun values(): R|kotlin/Array<light/ann/array/AnnAuxEnum>| {
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] fun valueOf([ResolvedTo(RAW_FIR)] value: R|kotlin/String|): R|light/ann/array/AnnAuxEnum| {
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] val entries: R|kotlin/enums/EnumEntries<light/ann/array/AnnAuxEnum>|
public [ResolvedTo(RAW_FIR)] get(): R|kotlin/enums/EnumEntries<light/ann/array/AnnAuxEnum>|
}
@R|light/ann/array/ArrayAnnEnumJava|[Types](LAZY_EXPRESSION) public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] fun box(): <implicit> { LAZY_BLOCK }
CONTRACTS:
FILE: [ResolvedTo(IMPORTS)] ArrayAnnUsage.kt
public? final? [ResolvedTo(RAW_FIR)] enum class AnnAuxEnum : R|kotlin/Enum<light/ann/array/AnnAuxEnum>| {
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] constructor(): R|light/ann/array/AnnAuxEnum| {
LAZY_super<R|kotlin/Enum<light/ann/array/AnnAuxEnum>|>
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] enum entry ANN_ENUM_VAL_A: R|light/ann/array/AnnAuxEnum|
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] enum entry ANN_ENUM_VAL_B: R|light/ann/array/AnnAuxEnum|
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] fun values(): R|kotlin/Array<light/ann/array/AnnAuxEnum>| {
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] fun valueOf([ResolvedTo(RAW_FIR)] value: R|kotlin/String|): R|light/ann/array/AnnAuxEnum| {
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] val entries: R|kotlin/enums/EnumEntries<light/ann/array/AnnAuxEnum>|
public [ResolvedTo(RAW_FIR)] get(): R|kotlin/enums/EnumEntries<light/ann/array/AnnAuxEnum>|
}
@R|light/ann/array/ArrayAnnEnumJava|[Types](LAZY_EXPRESSION) public final [ResolvedTo(CONTRACTS)] fun box(): <implicit> { LAZY_BLOCK }
IMPLICIT_TYPES_BODY_RESOLVE:
FILE: [ResolvedTo(IMPORTS)] ArrayAnnUsage.kt
public? final? [ResolvedTo(RAW_FIR)] enum class AnnAuxEnum : R|kotlin/Enum<light/ann/array/AnnAuxEnum>| {
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] constructor(): R|light/ann/array/AnnAuxEnum| {
LAZY_super<R|kotlin/Enum<light/ann/array/AnnAuxEnum>|>
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] enum entry ANN_ENUM_VAL_A: R|light/ann/array/AnnAuxEnum|
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] enum entry ANN_ENUM_VAL_B: R|light/ann/array/AnnAuxEnum|
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] fun values(): R|kotlin/Array<light/ann/array/AnnAuxEnum>| {
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] fun valueOf([ResolvedTo(RAW_FIR)] value: R|kotlin/String|): R|light/ann/array/AnnAuxEnum| {
}
public final static [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnnAuxEnum] val entries: R|kotlin/enums/EnumEntries<light/ann/array/AnnAuxEnum>|
public [ResolvedTo(RAW_FIR)] get(): R|kotlin/enums/EnumEntries<light/ann/array/AnnAuxEnum>|
}
@R|light/ann/array/ArrayAnnEnumJava|[Types](LAZY_EXPRESSION) public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun box(): R|kotlin/String| {
^box String(OK)
}
ANNOTATION_ARGUMENTS:
FILE: [ResolvedTo(IMPORTS)] ArrayAnnUsage.kt
public final [ResolvedTo(STATUS)] enum class AnnAuxEnum : R|kotlin/Enum<light/ann/array/AnnAuxEnum>| {
private [ResolvedTo(STATUS)] [ContainingClassKey=AnnAuxEnum] constructor(): R|light/ann/array/AnnAuxEnum| {
LAZY_super<R|kotlin/Enum<light/ann/array/AnnAuxEnum>|>
}
public final static [ResolvedTo(STATUS)] [ContainingClassKey=AnnAuxEnum] enum entry ANN_ENUM_VAL_A: R|light/ann/array/AnnAuxEnum|
public final static [ResolvedTo(STATUS)] [ContainingClassKey=AnnAuxEnum] enum entry ANN_ENUM_VAL_B: R|light/ann/array/AnnAuxEnum|
public final static [ResolvedTo(STATUS)] [ContainingClassKey=AnnAuxEnum] fun values(): R|kotlin/Array<light/ann/array/AnnAuxEnum>| {
}
public final static [ResolvedTo(STATUS)] [ContainingClassKey=AnnAuxEnum] fun valueOf([ResolvedTo(STATUS)] value: R|kotlin/String|): R|light/ann/array/AnnAuxEnum| {
}
public final static [ResolvedTo(STATUS)] [ContainingClassKey=AnnAuxEnum] val entries: R|kotlin/enums/EnumEntries<light/ann/array/AnnAuxEnum>|
public [ResolvedTo(STATUS)] get(): R|kotlin/enums/EnumEntries<light/ann/array/AnnAuxEnum>|
}
@R|light/ann/array/ArrayAnnEnumJava|[Types](enumValDef = <implicitArrayOf>(R|light/ann/array/AnnAuxEnum.ANN_ENUM_VAL_A|, R|light/ann/array/AnnAuxEnum.ANN_ENUM_VAL_B|)) public final [ResolvedTo(ANNOTATION_ARGUMENTS)] fun box(): R|kotlin/String| {
^box String(OK)
}
BODY_RESOLVE:
FILE: [ResolvedTo(IMPORTS)] ArrayAnnUsage.kt
public final [ResolvedTo(STATUS)] enum class AnnAuxEnum : R|kotlin/Enum<light/ann/array/AnnAuxEnum>| {
private [ResolvedTo(STATUS)] [ContainingClassKey=AnnAuxEnum] constructor(): R|light/ann/array/AnnAuxEnum| {
LAZY_super<R|kotlin/Enum<light/ann/array/AnnAuxEnum>|>
}
public final static [ResolvedTo(STATUS)] [ContainingClassKey=AnnAuxEnum] enum entry ANN_ENUM_VAL_A: R|light/ann/array/AnnAuxEnum|
public final static [ResolvedTo(STATUS)] [ContainingClassKey=AnnAuxEnum] enum entry ANN_ENUM_VAL_B: R|light/ann/array/AnnAuxEnum|
public final static [ResolvedTo(STATUS)] [ContainingClassKey=AnnAuxEnum] fun values(): R|kotlin/Array<light/ann/array/AnnAuxEnum>| {
}
public final static [ResolvedTo(STATUS)] [ContainingClassKey=AnnAuxEnum] fun valueOf([ResolvedTo(STATUS)] value: R|kotlin/String|): R|light/ann/array/AnnAuxEnum| {
}
public final static [ResolvedTo(STATUS)] [ContainingClassKey=AnnAuxEnum] val entries: R|kotlin/enums/EnumEntries<light/ann/array/AnnAuxEnum>|
public [ResolvedTo(STATUS)] get(): R|kotlin/enums/EnumEntries<light/ann/array/AnnAuxEnum>|
}
@R|light/ann/array/ArrayAnnEnumJava|[Types](enumValDef = <implicitArrayOf>(R|light/ann/array/AnnAuxEnum.ANN_ENUM_VAL_A|, R|light/ann/array/AnnAuxEnum.ANN_ENUM_VAL_B|)) public final [ResolvedTo(BODY_RESOLVE)] fun box(): R|kotlin/String| {
^box String(OK)
}
FILE RAW TO BODY:
FILE: [ResolvedTo(BODY_RESOLVE)] ArrayAnnUsage.kt
public final [ResolvedTo(BODY_RESOLVE)] enum class AnnAuxEnum : R|kotlin/Enum<light/ann/array/AnnAuxEnum>| {
private [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=AnnAuxEnum] constructor(): R|light/ann/array/AnnAuxEnum| {
super<R|kotlin/Enum<light/ann/array/AnnAuxEnum>|>()
}
public final static [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=AnnAuxEnum] enum entry ANN_ENUM_VAL_A: R|light/ann/array/AnnAuxEnum|
public final static [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=AnnAuxEnum] enum entry ANN_ENUM_VAL_B: R|light/ann/array/AnnAuxEnum|
public final static [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=AnnAuxEnum] fun values(): R|kotlin/Array<light/ann/array/AnnAuxEnum>| {
}
public final static [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=AnnAuxEnum] fun valueOf([ResolvedTo(BODY_RESOLVE)] value: R|kotlin/String|): R|light/ann/array/AnnAuxEnum| {
}
public final static [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=AnnAuxEnum] val entries: R|kotlin/enums/EnumEntries<light/ann/array/AnnAuxEnum>|
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/enums/EnumEntries<light/ann/array/AnnAuxEnum>|
}
@R|light/ann/array/ArrayAnnEnumJava|[Types](enumValDef = <implicitArrayOf>(R|light/ann/array/AnnAuxEnum.ANN_ENUM_VAL_A|, R|light/ann/array/AnnAuxEnum.ANN_ENUM_VAL_B|)) public final [ResolvedTo(BODY_RESOLVE)] fun box(): R|kotlin/String| {
^box String(OK)
}