FILE: postponedLambdaInReturn.kt
    public final class Lateinit<R : R|kotlin/Any|> : R|kotlin/Any| {
        public constructor<R : R|kotlin/Any|>(): R|Lateinit<R>| {
            super<R|kotlin/Any|>()
        }

        public final lateinit var value: R|R|
            public get(): R|R|
            public set(value: R|R|): R|kotlin/Unit|

    }
    @R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final inline fun <R : R|kotlin/Any|> build(crossinline builder: R|Lateinit<R>.() -> kotlin/Unit|): R|R|
        [R|Contract description]
         <
            CallsInPlace(builder, EXACTLY_ONCE)
        >
     {
         {
            R|kotlin/contracts/contract|(<L> = contract@fun R|kotlin/contracts/ContractBuilder|.<anonymous>(): R|kotlin/Unit| <inline=Inline, kind=UNKNOWN>  {
                this@R|special/anonymous|.R|kotlin/contracts/ContractBuilder.callsInPlace|<R|kotlin/Unit|>(R|<local>/builder|, Q|kotlin/contracts/InvocationKind|.R|kotlin/contracts/InvocationKind.EXACTLY_ONCE|)
            }
            )
        }

        ^build R|/Lateinit.Lateinit|<R|R|>().R|kotlin/apply|<R|Lateinit<R>|>(R|<local>/builder|).R|SubstitutionOverride</Lateinit.value: R|R|>|
    }
    public final val p: R|kotlin/Boolean| = Boolean(false)
        public get(): R|kotlin/Boolean|
    public final fun test1(): R|kotlin/Unit| {
        lvar y: R|kotlin/String?| = Null(null)
        lval x: R|kotlin/String| = R|kotlin/run|<R|kotlin/String|>(<L> = run@fun <anonymous>(): R|kotlin/String| <inline=Inline, kind=EXACTLY_ONCE>  {
            when () {
                R|/p| ->  {
                    ^@run R|/build|<R|kotlin/String|>(<L> = build@fun R|Lateinit<kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=CrossInline, kind=EXACTLY_ONCE>  {
                        (R|<local>/y| as R|kotlin/String|)
                        this@R|special/anonymous|.R|SubstitutionOverride</Lateinit.value: R|kotlin/String|>| = String(...)
                    }
                    )
                }
                else ->  {
                    ^@run String()
                }
            }

        }
        )
        R|<local>/y|.R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|
    }
    public final fun test2(): R|kotlin/Unit| {
        lval x: R|kotlin/String| = R|kotlin/run|<R|kotlin/String|>(<L> = run@fun <anonymous>(): R|kotlin/String| <inline=Inline, kind=EXACTLY_ONCE>  {
            while(Boolean(true)) {
                try {
                    ^@run R|/build|<R|kotlin/String|>(<L> = build@fun R|Lateinit<kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=CrossInline, kind=EXACTLY_ONCE>  {
                        this@R|special/anonymous|.R|SubstitutionOverride</Lateinit.value: R|kotlin/String|>| = String(...)
                    }
                    )
                }
                catch (e: R|kotlin/Throwable|) {
                }

            }

            throw R|java/lang/Exception.Exception|()
        }
        )
        R|<local>/x|.R|kotlin/String.length|
    }
    public final fun test3(): R|kotlin/Unit| {
        lvar y: R|kotlin/String?|
        R|<local>/y| = String()
        lval x: R|kotlin/String| = R|kotlin/run|<R|kotlin/String|>(<L> = run@fun <anonymous>(): R|kotlin/String| <inline=Inline, kind=EXACTLY_ONCE>  {
            when () {
                R|/p|.R|kotlin/Boolean.not|() ->  {
                    ^@run R|/build|<R|kotlin/String|>(<L> = build@fun R|Lateinit<kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=CrossInline, kind=EXACTLY_ONCE>  {
                        R|<local>/y| = Null(null)
                        this@R|special/anonymous|.R|SubstitutionOverride</Lateinit.value: R|kotlin/String|>| = String(...)
                    }
                    )
                }
                else ->  {
                    ^@run String()
                }
            }

        }
        )
        R|<local>/y|.R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|
    }
