FILE: A.kt
    public final annotation class A : R|kotlin/Annotation| {
        public constructor(x: R|kotlin/String|): R|A| {
            super<R|kotlin/Any|>()
        }

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

    }
    @R|kotlin/annotation/Target|(allowedTargets = vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE_PARAMETER|) [evaluated = vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE_PARAMETER|)]) public final annotation class Something : R|kotlin/Annotation| {
        public constructor(): R|Something| {
            super<R|kotlin/Any|>()
        }

    }
FILE: B.kt
    public open class B : R|kotlin/Any| {
        public constructor(): R|B| {
            super<R|kotlin/Any|>()
        }

        @R|A|(x = String(String  ) [evaluated = String(String  )]) public final fun foo(): R|kotlin/Unit| {
        }

    }
FILE: E.kt
    public final fun <@R|Something|() X> bar(): R|kotlin/Unit| {
    }
    public final class E : R|B| {
        public constructor(): R|E| {
            super<R|B|>()
        }

    }
    public final fun box(): R|kotlin/String| {
        ^box String(OK)
    }
