FILE: selfReferentialAnnotation.kt
    public final annotation class Ann : R|kotlin/Annotation| {
        public constructor(@R|Ann|(e = Int(1)) e: R|kotlin/Int|): R|Ann| {
            super<R|kotlin/Any|>()
        }

        public final val e: R|kotlin/Int| = R|<local>/e|
            public get(): R|kotlin/Int|

    }
    @R|MyRequiresOptIn|(a = String(), b = Q|MyRequiresOptIn.MyLevel|.R|/MyRequiresOptIn.MyLevel.ERROR|) public final annotation class MyRequiresOptIn : R|kotlin/Annotation| {
        public constructor(a: R|kotlin/String| = String(), @R|MyRequiresOptIn|(a = String(), b = Q|MyRequiresOptIn.MyLevel|.R|/MyRequiresOptIn.MyLevel.WARNING|) b: R|MyRequiresOptIn.MyLevel| = Q|MyRequiresOptIn.MyLevel|.R|/MyRequiresOptIn.MyLevel.ERROR|): R|MyRequiresOptIn| {
            super<R|kotlin/Any|>()
        }

        public final val a: R|kotlin/String| = R|<local>/a|
            public get(): R|kotlin/String|

        public final val b: R|MyRequiresOptIn.MyLevel| = R|<local>/b|
            public get(): R|MyRequiresOptIn.MyLevel|

        public final enum class MyLevel : R|kotlin/Enum<MyRequiresOptIn.MyLevel>| {
            private constructor(): R|MyRequiresOptIn.MyLevel| {
                super<R|kotlin/Enum<MyRequiresOptIn.MyLevel>|>()
            }

            public final static enum entry WARNING: R|MyRequiresOptIn.MyLevel|
            public final static enum entry ERROR: R|MyRequiresOptIn.MyLevel|
            public final static fun values(): R|kotlin/Array<MyRequiresOptIn.MyLevel>| {
            }

            public final static fun valueOf(value: R|kotlin/String|): R|MyRequiresOptIn.MyLevel| {
            }

            public final static val entries: R|kotlin/enums/EnumEntries<MyRequiresOptIn.MyLevel>|
                public get(): R|kotlin/enums/EnumEntries<MyRequiresOptIn.MyLevel>|

        }

    }
    public final fun box(): R|kotlin/String| {
        lval result: R|kotlin/String| = Q|MyRequiresOptIn.MyLevel|.R|/MyRequiresOptIn.MyLevel.values*s|().R|kotlin/collections/joinToString|<R|MyRequiresOptIn.MyLevel|>()
        ^box when (lval <when-subject>: R|kotlin/String| = R|<local>/result|) {
            ==($subj$, String(WARNING, ERROR)) ->  {
                String(OK)
            }
            else ->  {
                <strcat>(String(Fail: ), R|<local>/result|)
            }
        }

    }
