RAW_FIR:
FILE: [ResolvedTo(RAW_FIR)] fakeOverrideScript.kts
    context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
    SCRIPT: [ResolvedTo(RAW_FIR)] <script-fakeOverrideScript.kts>
        [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|

        public? final? [ResolvedTo(RAW_FIR)] fun expression([ResolvedTo(RAW_FIR)] expression: IrConst<*>): R|kotlin/Unit| { LAZY_BLOCK }

        public? sealed [ResolvedTo(RAW_FIR)] class Kind<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| {
            protected [ResolvedTo(RAW_FIR)] [ContainingClassKey=Kind] constructor<[ResolvedTo(RAW_FIR)] T>([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Kind.asString] asString: String): R|Kind<T>| {
                LAZY_super<R|kotlin/Any|>
            }

            public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val asString: String = R|<local>/asString|
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Kind] get(): String

            @Suppress[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] fun valueOf([ResolvedTo(RAW_FIR)] aConst: IrConst<*>): <implicit> { LAZY_BLOCK }

            public? final? [ResolvedTo(RAW_FIR)] object Null : Kind<Nothing?> {
                private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Null] constructor(): R|Kind.Null| {
                    LAZY_super<Kind<Nothing?>>
                }

            }

            public? open? override [ResolvedTo(RAW_FIR)] fun toString(): <implicit> { LAZY_BLOCK }

        }

        public? abstract [ResolvedTo(RAW_FIR)] class IrConst<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| {
            public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] constructor<[ResolvedTo(RAW_FIR)] T>(): R|IrConst<T>| {
                LAZY_super<R|kotlin/Any|>
            }

            public? abstract [ResolvedTo(RAW_FIR)] var kind: Kind<T>
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] get(): Kind<T>
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] set([ResolvedTo(RAW_FIR)] value: Kind<T>): R|kotlin/Unit|

            public? abstract [ResolvedTo(RAW_FIR)] var value: T
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] get(): T
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] set([ResolvedTo(RAW_FIR)] value: T): R|kotlin/Unit|

        }


IMPORTS:
FILE: [ResolvedTo(IMPORTS)] fakeOverrideScript.kts
    context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
    SCRIPT: [ResolvedTo(RAW_FIR)] <script-fakeOverrideScript.kts>
        [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|

        public? final? [ResolvedTo(RAW_FIR)] fun expression([ResolvedTo(RAW_FIR)] expression: IrConst<*>): R|kotlin/Unit| { LAZY_BLOCK }

        public? sealed [ResolvedTo(RAW_FIR)] class Kind<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| {
            protected [ResolvedTo(RAW_FIR)] [ContainingClassKey=Kind] constructor<[ResolvedTo(RAW_FIR)] T>([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Kind.asString] asString: String): R|Kind<T>| {
                LAZY_super<R|kotlin/Any|>
            }

            public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val asString: String = R|<local>/asString|
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Kind] get(): String

            @Suppress[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] fun valueOf([ResolvedTo(RAW_FIR)] aConst: IrConst<*>): <implicit> { LAZY_BLOCK }

            public? final? [ResolvedTo(RAW_FIR)] object Null : Kind<Nothing?> {
                private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Null] constructor(): R|Kind.Null| {
                    LAZY_super<Kind<Nothing?>>
                }

            }

            public? open? override [ResolvedTo(RAW_FIR)] fun toString(): <implicit> { LAZY_BLOCK }

        }

        public? abstract [ResolvedTo(RAW_FIR)] class IrConst<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| {
            public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] constructor<[ResolvedTo(RAW_FIR)] T>(): R|IrConst<T>| {
                LAZY_super<R|kotlin/Any|>
            }

            public? abstract [ResolvedTo(RAW_FIR)] var kind: Kind<T>
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] get(): Kind<T>
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] set([ResolvedTo(RAW_FIR)] value: Kind<T>): R|kotlin/Unit|

            public? abstract [ResolvedTo(RAW_FIR)] var value: T
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] get(): T
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] set([ResolvedTo(RAW_FIR)] value: T): R|kotlin/Unit|

        }


COMPILER_REQUIRED_ANNOTATIONS:
FILE: [ResolvedTo(IMPORTS)] fakeOverrideScript.kts
    context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
    SCRIPT: [ResolvedTo(RAW_FIR)] <script-fakeOverrideScript.kts>
        [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|

        public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] fun expression([ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] expression: IrConst<*>): R|kotlin/Unit| { LAZY_BLOCK }

        public? sealed [ResolvedTo(RAW_FIR)] class Kind<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| {
            protected [ResolvedTo(RAW_FIR)] [ContainingClassKey=Kind] constructor<[ResolvedTo(RAW_FIR)] T>([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Kind.asString] asString: String): R|Kind<T>| {
                LAZY_super<R|kotlin/Any|>
            }

            public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val asString: String = R|<local>/asString|
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Kind] get(): String

            @Suppress[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] fun valueOf([ResolvedTo(RAW_FIR)] aConst: IrConst<*>): <implicit> { LAZY_BLOCK }

            public? final? [ResolvedTo(RAW_FIR)] object Null : Kind<Nothing?> {
                private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Null] constructor(): R|Kind.Null| {
                    LAZY_super<Kind<Nothing?>>
                }

            }

            public? open? override [ResolvedTo(RAW_FIR)] fun toString(): <implicit> { LAZY_BLOCK }

        }

        public? abstract [ResolvedTo(RAW_FIR)] class IrConst<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| {
            public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] constructor<[ResolvedTo(RAW_FIR)] T>(): R|IrConst<T>| {
                LAZY_super<R|kotlin/Any|>
            }

            public? abstract [ResolvedTo(RAW_FIR)] var kind: Kind<T>
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] get(): Kind<T>
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] set([ResolvedTo(RAW_FIR)] value: Kind<T>): R|kotlin/Unit|

            public? abstract [ResolvedTo(RAW_FIR)] var value: T
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] get(): T
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] set([ResolvedTo(RAW_FIR)] value: T): R|kotlin/Unit|

        }


COMPANION_GENERATION:
FILE: [ResolvedTo(IMPORTS)] fakeOverrideScript.kts
    context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
    SCRIPT: [ResolvedTo(RAW_FIR)] <script-fakeOverrideScript.kts>
        [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|

        public? final? [ResolvedTo(COMPANION_GENERATION)] fun expression([ResolvedTo(COMPANION_GENERATION)] expression: IrConst<*>): R|kotlin/Unit| { LAZY_BLOCK }

        public? sealed [ResolvedTo(RAW_FIR)] class Kind<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| {
            protected [ResolvedTo(RAW_FIR)] [ContainingClassKey=Kind] constructor<[ResolvedTo(RAW_FIR)] T>([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Kind.asString] asString: String): R|Kind<T>| {
                LAZY_super<R|kotlin/Any|>
            }

            public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val asString: String = R|<local>/asString|
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Kind] get(): String

            @Suppress[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] fun valueOf([ResolvedTo(RAW_FIR)] aConst: IrConst<*>): <implicit> { LAZY_BLOCK }

            public? final? [ResolvedTo(RAW_FIR)] object Null : Kind<Nothing?> {
                private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Null] constructor(): R|Kind.Null| {
                    LAZY_super<Kind<Nothing?>>
                }

            }

            public? open? override [ResolvedTo(RAW_FIR)] fun toString(): <implicit> { LAZY_BLOCK }

        }

        public? abstract [ResolvedTo(RAW_FIR)] class IrConst<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| {
            public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] constructor<[ResolvedTo(RAW_FIR)] T>(): R|IrConst<T>| {
                LAZY_super<R|kotlin/Any|>
            }

            public? abstract [ResolvedTo(RAW_FIR)] var kind: Kind<T>
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] get(): Kind<T>
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] set([ResolvedTo(RAW_FIR)] value: Kind<T>): R|kotlin/Unit|

            public? abstract [ResolvedTo(RAW_FIR)] var value: T
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] get(): T
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] set([ResolvedTo(RAW_FIR)] value: T): R|kotlin/Unit|

        }


SUPER_TYPES:
FILE: [ResolvedTo(IMPORTS)] fakeOverrideScript.kts
    context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
    SCRIPT: [ResolvedTo(RAW_FIR)] <script-fakeOverrideScript.kts>
        [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|

        public? final? [ResolvedTo(SUPER_TYPES)] fun expression([ResolvedTo(SUPER_TYPES)] expression: IrConst<*>): R|kotlin/Unit| { LAZY_BLOCK }

        public? sealed [ResolvedTo(RAW_FIR)] class Kind<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| {
            protected [ResolvedTo(RAW_FIR)] [ContainingClassKey=Kind] constructor<[ResolvedTo(RAW_FIR)] T>([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Kind.asString] asString: String): R|Kind<T>| {
                LAZY_super<R|kotlin/Any|>
            }

            public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val asString: String = R|<local>/asString|
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Kind] get(): String

            @Suppress[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] fun valueOf([ResolvedTo(RAW_FIR)] aConst: IrConst<*>): <implicit> { LAZY_BLOCK }

            public? final? [ResolvedTo(RAW_FIR)] object Null : Kind<Nothing?> {
                private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Null] constructor(): R|Kind.Null| {
                    LAZY_super<Kind<Nothing?>>
                }

            }

            public? open? override [ResolvedTo(RAW_FIR)] fun toString(): <implicit> { LAZY_BLOCK }

        }

        public? abstract [ResolvedTo(RAW_FIR)] class IrConst<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| {
            public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] constructor<[ResolvedTo(RAW_FIR)] T>(): R|IrConst<T>| {
                LAZY_super<R|kotlin/Any|>
            }

            public? abstract [ResolvedTo(RAW_FIR)] var kind: Kind<T>
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] get(): Kind<T>
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] set([ResolvedTo(RAW_FIR)] value: Kind<T>): R|kotlin/Unit|

            public? abstract [ResolvedTo(RAW_FIR)] var value: T
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] get(): T
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] set([ResolvedTo(RAW_FIR)] value: T): R|kotlin/Unit|

        }


TYPES:
FILE: [ResolvedTo(IMPORTS)] fakeOverrideScript.kts
    context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
    SCRIPT: [ResolvedTo(RAW_FIR)] <script-fakeOverrideScript.kts>
        [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|

        public? final? [ResolvedTo(TYPES)] fun expression([ResolvedTo(TYPES)] expression: R|IrConst<*>|): R|kotlin/Unit| { LAZY_BLOCK }

        public? sealed [ResolvedTo(RAW_FIR)] class Kind<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| {
            protected [ResolvedTo(RAW_FIR)] [ContainingClassKey=Kind] constructor<[ResolvedTo(RAW_FIR)] T>([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Kind.asString] asString: String): R|Kind<T>| {
                LAZY_super<R|kotlin/Any|>
            }

            public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val asString: String = R|<local>/asString|
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Kind] get(): String

            @Suppress[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] fun valueOf([ResolvedTo(RAW_FIR)] aConst: IrConst<*>): <implicit> { LAZY_BLOCK }

            public? final? [ResolvedTo(RAW_FIR)] object Null : Kind<Nothing?> {
                private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Null] constructor(): R|Kind.Null| {
                    LAZY_super<Kind<Nothing?>>
                }

            }

            public? open? override [ResolvedTo(RAW_FIR)] fun toString(): <implicit> { LAZY_BLOCK }

        }

        public? abstract [ResolvedTo(RAW_FIR)] class IrConst<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| {
            public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] constructor<[ResolvedTo(RAW_FIR)] T>(): R|IrConst<T>| {
                LAZY_super<R|kotlin/Any|>
            }

            public? abstract [ResolvedTo(RAW_FIR)] var kind: Kind<T>
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] get(): Kind<T>
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] set([ResolvedTo(RAW_FIR)] value: Kind<T>): R|kotlin/Unit|

            public? abstract [ResolvedTo(RAW_FIR)] var value: T
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] get(): T
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] set([ResolvedTo(RAW_FIR)] value: T): R|kotlin/Unit|

        }


STATUS:
FILE: [ResolvedTo(IMPORTS)] fakeOverrideScript.kts
    context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
    SCRIPT: [ResolvedTo(RAW_FIR)] <script-fakeOverrideScript.kts>
        [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|

        public final [ResolvedTo(STATUS)] fun expression([ResolvedTo(STATUS)] expression: R|IrConst<*>|): R|kotlin/Unit| { LAZY_BLOCK }

        public? sealed [ResolvedTo(RAW_FIR)] class Kind<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| {
            protected [ResolvedTo(RAW_FIR)] [ContainingClassKey=Kind] constructor<[ResolvedTo(RAW_FIR)] T>([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Kind.asString] asString: String): R|Kind<T>| {
                LAZY_super<R|kotlin/Any|>
            }

            public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val asString: String = R|<local>/asString|
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Kind] get(): String

            @Suppress[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] fun valueOf([ResolvedTo(RAW_FIR)] aConst: IrConst<*>): <implicit> { LAZY_BLOCK }

            public? final? [ResolvedTo(RAW_FIR)] object Null : Kind<Nothing?> {
                private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Null] constructor(): R|Kind.Null| {
                    LAZY_super<Kind<Nothing?>>
                }

            }

            public? open? override [ResolvedTo(RAW_FIR)] fun toString(): <implicit> { LAZY_BLOCK }

        }

        public? abstract [ResolvedTo(RAW_FIR)] class IrConst<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| {
            public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] constructor<[ResolvedTo(RAW_FIR)] T>(): R|IrConst<T>| {
                LAZY_super<R|kotlin/Any|>
            }

            public? abstract [ResolvedTo(RAW_FIR)] var kind: Kind<T>
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] get(): Kind<T>
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] set([ResolvedTo(RAW_FIR)] value: Kind<T>): R|kotlin/Unit|

            public? abstract [ResolvedTo(RAW_FIR)] var value: T
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] get(): T
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] set([ResolvedTo(RAW_FIR)] value: T): R|kotlin/Unit|

        }


EXPECT_ACTUAL_MATCHING:
FILE: [ResolvedTo(IMPORTS)] fakeOverrideScript.kts
    context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
    SCRIPT: [ResolvedTo(RAW_FIR)] <script-fakeOverrideScript.kts>
        [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|

        public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] fun expression([ResolvedTo(EXPECT_ACTUAL_MATCHING)] expression: R|IrConst<*>|): R|kotlin/Unit| { LAZY_BLOCK }

        public? sealed [ResolvedTo(RAW_FIR)] class Kind<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| {
            protected [ResolvedTo(RAW_FIR)] [ContainingClassKey=Kind] constructor<[ResolvedTo(RAW_FIR)] T>([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Kind.asString] asString: String): R|Kind<T>| {
                LAZY_super<R|kotlin/Any|>
            }

            public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val asString: String = R|<local>/asString|
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Kind] get(): String

            @Suppress[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] fun valueOf([ResolvedTo(RAW_FIR)] aConst: IrConst<*>): <implicit> { LAZY_BLOCK }

            public? final? [ResolvedTo(RAW_FIR)] object Null : Kind<Nothing?> {
                private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Null] constructor(): R|Kind.Null| {
                    LAZY_super<Kind<Nothing?>>
                }

            }

            public? open? override [ResolvedTo(RAW_FIR)] fun toString(): <implicit> { LAZY_BLOCK }

        }

        public? abstract [ResolvedTo(RAW_FIR)] class IrConst<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| {
            public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] constructor<[ResolvedTo(RAW_FIR)] T>(): R|IrConst<T>| {
                LAZY_super<R|kotlin/Any|>
            }

            public? abstract [ResolvedTo(RAW_FIR)] var kind: Kind<T>
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] get(): Kind<T>
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] set([ResolvedTo(RAW_FIR)] value: Kind<T>): R|kotlin/Unit|

            public? abstract [ResolvedTo(RAW_FIR)] var value: T
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] get(): T
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] set([ResolvedTo(RAW_FIR)] value: T): R|kotlin/Unit|

        }


CONTRACTS:
FILE: [ResolvedTo(IMPORTS)] fakeOverrideScript.kts
    context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
    SCRIPT: [ResolvedTo(TYPES)] <script-fakeOverrideScript.kts>
        [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|

        public final [ResolvedTo(CONTRACTS)] fun expression([ResolvedTo(CONTRACTS)] expression: R|IrConst<*>|): R|kotlin/Unit| {
            when ([ResolvedTo(RAW_FIR)] lval kind: <implicit> = expression#.kind#) {
                ($subj$ is Kind.Null) ->  {
                    kind#.valueOf#(expression#)
                }
                else ->  {
                }
            }

        }

        public? sealed [ResolvedTo(RAW_FIR)] class Kind<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| {
            protected [ResolvedTo(RAW_FIR)] [ContainingClassKey=Kind] constructor<[ResolvedTo(RAW_FIR)] T>([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Kind.asString] asString: String): R|Kind<T>| {
                LAZY_super<R|kotlin/Any|>
            }

            public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val asString: String = R|<local>/asString|
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Kind] get(): String

            @Suppress[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] fun valueOf([ResolvedTo(RAW_FIR)] aConst: IrConst<*>): <implicit> { LAZY_BLOCK }

            public? final? [ResolvedTo(RAW_FIR)] object Null : Kind<Nothing?> {
                private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Null] constructor(): R|Kind.Null| {
                    LAZY_super<Kind<Nothing?>>
                }

            }

            public? open? override [ResolvedTo(RAW_FIR)] fun toString(): <implicit> { LAZY_BLOCK }

        }

        public? abstract [ResolvedTo(RAW_FIR)] class IrConst<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| {
            public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] constructor<[ResolvedTo(RAW_FIR)] T>(): R|IrConst<T>| {
                LAZY_super<R|kotlin/Any|>
            }

            public? abstract [ResolvedTo(RAW_FIR)] var kind: Kind<T>
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] get(): Kind<T>
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] set([ResolvedTo(RAW_FIR)] value: Kind<T>): R|kotlin/Unit|

            public? abstract [ResolvedTo(RAW_FIR)] var value: T
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] get(): T
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] set([ResolvedTo(RAW_FIR)] value: T): R|kotlin/Unit|

        }


IMPLICIT_TYPES_BODY_RESOLVE:
FILE: [ResolvedTo(IMPORTS)] fakeOverrideScript.kts
    context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
    SCRIPT: [ResolvedTo(TYPES)] <script-fakeOverrideScript.kts>
        [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|

        public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun expression([ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] expression: R|IrConst<*>|): R|kotlin/Unit| {
            when ([ResolvedTo(RAW_FIR)] lval kind: <implicit> = expression#.kind#) {
                ($subj$ is Kind.Null) ->  {
                    kind#.valueOf#(expression#)
                }
                else ->  {
                }
            }

        }

        public? sealed [ResolvedTo(RAW_FIR)] class Kind<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| {
            protected [ResolvedTo(RAW_FIR)] [ContainingClassKey=Kind] constructor<[ResolvedTo(RAW_FIR)] T>([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Kind.asString] asString: String): R|Kind<T>| {
                LAZY_super<R|kotlin/Any|>
            }

            public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val asString: String = R|<local>/asString|
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Kind] get(): String

            @Suppress[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] fun valueOf([ResolvedTo(RAW_FIR)] aConst: IrConst<*>): <implicit> { LAZY_BLOCK }

            public? final? [ResolvedTo(RAW_FIR)] object Null : Kind<Nothing?> {
                private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Null] constructor(): R|Kind.Null| {
                    LAZY_super<Kind<Nothing?>>
                }

            }

            public? open? override [ResolvedTo(RAW_FIR)] fun toString(): <implicit> { LAZY_BLOCK }

        }

        public? abstract [ResolvedTo(RAW_FIR)] class IrConst<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| {
            public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] constructor<[ResolvedTo(RAW_FIR)] T>(): R|IrConst<T>| {
                LAZY_super<R|kotlin/Any|>
            }

            public? abstract [ResolvedTo(RAW_FIR)] var kind: Kind<T>
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] get(): Kind<T>
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] set([ResolvedTo(RAW_FIR)] value: Kind<T>): R|kotlin/Unit|

            public? abstract [ResolvedTo(RAW_FIR)] var value: T
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] get(): T
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] set([ResolvedTo(RAW_FIR)] value: T): R|kotlin/Unit|

        }


ANNOTATION_ARGUMENTS:
FILE: [ResolvedTo(IMPORTS)] fakeOverrideScript.kts
    context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
    SCRIPT: [ResolvedTo(TYPES)] <script-fakeOverrideScript.kts>
        [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|

        public final [ResolvedTo(ANNOTATION_ARGUMENTS)] fun expression([ResolvedTo(ANNOTATION_ARGUMENTS)] expression: R|IrConst<*>|): R|kotlin/Unit| {
            when ([ResolvedTo(RAW_FIR)] lval kind: <implicit> = expression#.kind#) {
                ($subj$ is Kind.Null) ->  {
                    kind#.valueOf#(expression#)
                }
                else ->  {
                }
            }

        }

        public? sealed [ResolvedTo(RAW_FIR)] class Kind<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| {
            protected [ResolvedTo(RAW_FIR)] [ContainingClassKey=Kind] constructor<[ResolvedTo(RAW_FIR)] T>([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Kind.asString] asString: String): R|Kind<T>| {
                LAZY_super<R|kotlin/Any|>
            }

            public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val asString: String = R|<local>/asString|
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Kind] get(): String

            @Suppress[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] fun valueOf([ResolvedTo(RAW_FIR)] aConst: IrConst<*>): <implicit> { LAZY_BLOCK }

            public? final? [ResolvedTo(RAW_FIR)] object Null : Kind<Nothing?> {
                private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Null] constructor(): R|Kind.Null| {
                    LAZY_super<Kind<Nothing?>>
                }

            }

            public? open? override [ResolvedTo(RAW_FIR)] fun toString(): <implicit> { LAZY_BLOCK }

        }

        public? abstract [ResolvedTo(RAW_FIR)] class IrConst<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| {
            public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] constructor<[ResolvedTo(RAW_FIR)] T>(): R|IrConst<T>| {
                LAZY_super<R|kotlin/Any|>
            }

            public? abstract [ResolvedTo(RAW_FIR)] var kind: Kind<T>
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] get(): Kind<T>
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] set([ResolvedTo(RAW_FIR)] value: Kind<T>): R|kotlin/Unit|

            public? abstract [ResolvedTo(RAW_FIR)] var value: T
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] get(): T
                public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=IrConst] set([ResolvedTo(RAW_FIR)] value: T): R|kotlin/Unit|

        }


BODY_RESOLVE:
FILE: [ResolvedTo(IMPORTS)] fakeOverrideScript.kts
    context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
    SCRIPT: [ResolvedTo(TYPES)] <script-fakeOverrideScript.kts>
        [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|

        public final [ResolvedTo(BODY_RESOLVE)] fun expression([ResolvedTo(BODY_RESOLVE)] expression: R|IrConst<*>|): R|kotlin/Unit| {
            when ([ResolvedTo(BODY_RESOLVE)] lval kind: R|Kind<out kotlin/Any?>| = R|<local>/expression|.R|SubstitutionOverride</IrConst.kind: R|Kind<CapturedType(*)>|>|) {
                ($subj$ is R|Kind.Null|) ->  {
                    R|<local>/kind|.R|SubstitutionOverride</Kind.Null.valueOf: R|kotlin/Nothing?|>|(R|<local>/expression|)
                }
                else ->  {
                }
            }

        }

        public sealed [ResolvedTo(STATUS)] class Kind<[ResolvedTo(STATUS)] T> : R|kotlin/Any| {
            protected [ResolvedTo(STATUS)] [ContainingClassKey=Kind] constructor<[ResolvedTo(STATUS)] T>([ResolvedTo(STATUS)] [CorrespondingProperty=/Kind.asString] asString: R|kotlin/String|): R|Kind<T>| {
                LAZY_super<R|kotlin/Any|>
            }

            public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val asString: R|kotlin/String| = R|<local>/asString|
                public [ResolvedTo(STATUS)] [ContainingClassKey=Kind] get(): R|kotlin/String|

            @R|kotlin/Suppress|[Types](LAZY_EXPRESSION) public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun valueOf([ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] aConst: R|IrConst<*>|): R|T| {
                ^valueOf (R|<local>/aConst| as R|IrConst<T>|).R|SubstitutionOverride</IrConst.value: R|T|>|
            }

            public final [ResolvedTo(STATUS)] object Null : R|Kind<kotlin/Nothing?>| {
                private [ResolvedTo(STATUS)] [ContainingClassKey=Null] constructor(): R|Kind.Null| {
                    LAZY_super<R|Kind<kotlin/Nothing?>|>
                }

            }

            public open override [ResolvedTo(STATUS)] fun toString(): <implicit> { LAZY_BLOCK }

        }

        public abstract [ResolvedTo(STATUS)] class IrConst<[ResolvedTo(STATUS)] T> : R|kotlin/Any| {
            public [ResolvedTo(STATUS)] [ContainingClassKey=IrConst] constructor<[ResolvedTo(STATUS)] T>(): R|IrConst<T>| {
                LAZY_super<R|kotlin/Any|>
            }

            public abstract [ResolvedTo(CONTRACTS)] var kind: R|Kind<T>|
                public [ResolvedTo(CONTRACTS)] [ContainingClassKey=IrConst] get(): R|Kind<T>|
                public [ResolvedTo(CONTRACTS)] [ContainingClassKey=IrConst] set([ResolvedTo(CONTRACTS)] value: R|Kind<T>|): R|kotlin/Unit|

            public abstract [ResolvedTo(CONTRACTS)] var value: R|T|
                public [ResolvedTo(CONTRACTS)] [ContainingClassKey=IrConst] get(): R|T|
                public [ResolvedTo(CONTRACTS)] [ContainingClassKey=IrConst] set([ResolvedTo(CONTRACTS)] value: R|T|): R|kotlin/Unit|

        }


FILE RAW TO BODY:
FILE: [ResolvedTo(BODY_RESOLVE)] fakeOverrideScript.kts
    context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
    SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-fakeOverrideScript.kts>
        [ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>|

        public final [ResolvedTo(BODY_RESOLVE)] fun expression([ResolvedTo(BODY_RESOLVE)] expression: R|IrConst<*>|): R|kotlin/Unit| {
            when ([ResolvedTo(BODY_RESOLVE)] lval kind: R|Kind<out kotlin/Any?>| = R|<local>/expression|.R|SubstitutionOverride</IrConst.kind: R|Kind<CapturedType(*)>|>|) {
                ($subj$ is R|Kind.Null|) ->  {
                    R|<local>/kind|.R|SubstitutionOverride</Kind.Null.valueOf: R|kotlin/Nothing?|>|(R|<local>/expression|)
                }
                else ->  {
                }
            }

        }

        public sealed [ResolvedTo(BODY_RESOLVE)] class Kind<[ResolvedTo(BODY_RESOLVE)] T> : R|kotlin/Any| {
            protected [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Kind] constructor<[ResolvedTo(BODY_RESOLVE)] T>([ResolvedTo(BODY_RESOLVE)] [CorrespondingProperty=/Kind.asString] asString: R|kotlin/String|): R|Kind<T>| {
                super<R|kotlin/Any|>()
            }

            public final [ResolvedTo(BODY_RESOLVE)] [IsFromPrimaryConstructor=true] val asString: R|kotlin/String| = R|<local>/asString|
                public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Kind] get(): R|kotlin/String|

            @R|kotlin/Suppress|[Types](names = vararg(String(UNCHECKED_CAST))) public final [ResolvedTo(BODY_RESOLVE)] fun valueOf([ResolvedTo(BODY_RESOLVE)] aConst: R|IrConst<*>|): R|T| {
                ^valueOf (R|<local>/aConst| as R|IrConst<T>|).R|SubstitutionOverride</IrConst.value: R|T|>|
            }

            public final [ResolvedTo(BODY_RESOLVE)] object Null : R|Kind<kotlin/Nothing?>| {
                private [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Null] constructor(): R|Kind.Null| {
                    super<R|Kind<kotlin/Nothing?>|>(String(Null))
                }

            }

            public open override [ResolvedTo(BODY_RESOLVE)] fun toString(): R|kotlin/String| {
                ^toString this@R|/Kind|.R|/Kind.asString|
            }

        }

        public abstract [ResolvedTo(BODY_RESOLVE)] class IrConst<[ResolvedTo(BODY_RESOLVE)] T> : R|kotlin/Any| {
            public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=IrConst] constructor<[ResolvedTo(BODY_RESOLVE)] T>(): R|IrConst<T>| {
                super<R|kotlin/Any|>()
            }

            public abstract [ResolvedTo(BODY_RESOLVE)] var kind: R|Kind<T>|
                public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=IrConst] get(): R|Kind<T>|
                public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=IrConst] set([ResolvedTo(BODY_RESOLVE)] value: R|Kind<T>|): R|kotlin/Unit|

            public abstract [ResolvedTo(BODY_RESOLVE)] var value: R|T|
                public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=IrConst] get(): R|T|
                public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=IrConst] set([ResolvedTo(BODY_RESOLVE)] value: R|T|): R|kotlin/Unit|

        }

