FILE: CanBeValChecker.kt public final fun testDelegator(): R|kotlin/Unit| { lvar x: R|kotlin/Boolean|by R|/LocalFreezableVar.LocalFreezableVar|(Boolean(true)) lvar y: R|kotlin/String|by R|/LocalFreezableVar.LocalFreezableVar|(String()) } public final class LocalFreezableVar : R|kotlin/Any| { public constructor(value: R|T|): R|LocalFreezableVar| { super() } private final var value: R|T| = R|/value| private get(): R|T| private set(value: R|T|): R|kotlin/Unit| public final operator fun getValue(thisRef: R|kotlin/Nothing?|, property: R|kotlin/reflect/KProperty<*>|): R|T| { ^getValue this@R|/LocalFreezableVar|.R|/LocalFreezableVar.value| } public final operator fun setValue(thisRef: R|kotlin/Nothing?|, property: R|kotlin/reflect/KProperty<*>|, value: R|T|): R|kotlin/Unit| { this@R|/LocalFreezableVar|.R|/LocalFreezableVar.value| = R|/value| } } public final operator fun R|C|.plus(a: R|kotlin/Any|): R|C| { ^plus this@R|/plus| } public final operator fun R|C|.plusAssign(a: R|kotlin/Any|): R|kotlin/Unit| { } public final fun testOperatorAssignment(): R|kotlin/Unit| { lval c: R|C| = R|/C.C|() R|/c|.R|/plusAssign|(String()) lvar c1: R|C| = R|/C.C|() ERROR_EXPR(Operator overload ambiguity. Compatible candidates: [/plus, /plusAssign]) lvar a: R|kotlin/Int| = Int(1) R|/a| = R|/a|.R|kotlin/Int.plus|(Int(12)) R|/a| = R|/a|.R|kotlin/Int.minus|(Int(10)) } public final fun destructuringDeclaration(): R|kotlin/Unit| { lval : R|kotlin/Pair| = R|/getPair|() lvar v1: R|kotlin/Int| = R|/|.R|SubstitutionOverride|() lvar v2: R|kotlin/String| = R|/|.R|SubstitutionOverride|() R|kotlin/io/print|(R|/v1|) lval : R|kotlin/Pair| = R|/getPair|() lvar v3: R|kotlin/Int| = R|/|.R|SubstitutionOverride|() lvar v4: R|kotlin/String| = R|/|.R|SubstitutionOverride|() R|kotlin/io/print|(R|/v3|) R|/v4| = String() lval : R|kotlin/Pair| = R|/getPair|() lvar v5: R|kotlin/Int| = R|/|.R|SubstitutionOverride|() lvar v6: R|kotlin/String| = R|/|.R|SubstitutionOverride|() R|/v5| = Int(1) lval : R|kotlin/Pair| = R|/getPair|() lvar v7: R|kotlin/Int| = R|/|.R|SubstitutionOverride|() lvar v8: R|kotlin/String| = R|/|.R|SubstitutionOverride|() R|/v7| = Int(2) R|/v8| = String(42) lval : R|kotlin/Triple| = R|kotlin/Triple.Triple|(Int(1), Int(1), Int(1)) lval a: R|kotlin/Int| = R|/|.R|SubstitutionOverride|() lval b: R|kotlin/Int| = R|/|.R|SubstitutionOverride|() lval c: R|kotlin/Int| = R|/|.R|SubstitutionOverride|() lval : R|kotlin/Triple| = R|kotlin/Triple.Triple|(Int(1), Int(1), Int(1)) lvar x: R|kotlin/Int| = R|/|.R|SubstitutionOverride|() lvar y: R|kotlin/Int| = R|/|.R|SubstitutionOverride|() lvar z: R|kotlin/Int| = R|/|.R|SubstitutionOverride|() } public final fun stackOverflowBug(): R|kotlin/Unit| { lvar a: R|kotlin/Int| R|/a| = Int(1) { lval : R|kotlin/collections/IntIterator| = Int(1).R|kotlin/Int.rangeTo|(Int(10)).R|kotlin/ranges/IntProgression.iterator|() while(R|/|.R|SubstitutionOverride|()) { lval i: R|kotlin/Int| = R|/|.R|kotlin/collections/IntIterator.next|() { R|kotlin/io/print|(R|/i|) } } } } public final fun smth(flag: R|kotlin/Boolean|): R|kotlin/Unit| { lvar a: R|kotlin/Int| = Int(1) when () { R|/flag| -> { while(CMP(>, R|/a|.R|kotlin/Int.compareTo|(Int(0)))) { { lval : R|kotlin/Int| = R|/a| R|/a| = R|/|.R|kotlin/Int.dec|() R|/| } } } } } public final fun withAnnotation(p: R|kotlin/collections/List|): R|kotlin/Unit| { @R|kotlin/Suppress|(names = vararg(String(UNCHECKED_CAST))) lvar v: R|kotlin/collections/List| = (R|/p| as R|kotlin/collections/List|) R|kotlin/io/print|(R|/v|) } public final fun withReadonlyDeligate(): R|kotlin/Unit| { lval s: R|kotlin/String|by R|kotlin/lazy|( = lazy@fun (): R|kotlin/String| { ^ String(Hello!) } ) R|/s|.R|kotlin/Any.hashCode|() } public final fun getPair(): R|kotlin/Pair| { ^getPair R|kotlin/Pair.Pair|(Int(1), String(1)) } public final fun listReceiver(p: R|kotlin/collections/List|): R|kotlin/Unit| { } public final fun withInitializer(): R|kotlin/Unit| { lvar v1: R|kotlin/Int| = Int(1) lvar v2: R|kotlin/Int| = Int(2) lvar v3: R|kotlin/Int| = Int(3) R|/v1| = Int(1) { lval : R|kotlin/Int| = R|/v2| R|/v2| = R|/|.R|kotlin/Int.inc|() R|/| } R|kotlin/io/print|(R|/v3|) } public final fun test(): R|kotlin/Unit| { lvar a: R|kotlin/Int| = Int(0) while(CMP(>, R|/a|.R|kotlin/Int.compareTo|(Int(0)))) { { lval : R|kotlin/Int| = R|/a| R|/a| = R|/|.R|kotlin/Int.inc|() R|/| } } } public final fun foo(): R|kotlin/Unit| { lvar a: R|kotlin/Int| lval bool: R|kotlin/Boolean| = Boolean(true) when () { R|/bool| -> { R|/a| = Int(4) } else -> { R|/a| = Int(42) } } lval b: R|kotlin/String| R|/b| = Boolean(false) } public final fun cycles(): R|kotlin/Unit| { lvar a: R|kotlin/Int| = Int(10) while(CMP(>, R|/a|.R|kotlin/Int.compareTo|(Int(0)))) { { lval : R|kotlin/Int| = R|/a| R|/a| = R|/|.R|kotlin/Int.dec|() R|/| } } lvar b: R|kotlin/Int| while(CMP(<, R|/a|.R|kotlin/Int.compareTo|(Int(10)))) { { lval : R|kotlin/Int| = R|/a| R|/a| = R|/|.R|kotlin/Int.inc|() R|/| } R|/b| = R|/a| } } public final fun assignedTwice(p: R|kotlin/Int|): R|kotlin/Unit| { lvar v: R|kotlin/Int| R|/v| = Int(0) when () { CMP(>, R|/p|.R|kotlin/Int.compareTo|(Int(0))) -> { R|/v| = Int(1) } } } public final fun main(args: R|kotlin/Array|): R|kotlin/Unit| { lvar a: R|kotlin/String?| lval unused: R|kotlin/Int| = Int(0) when () { ==(R|/args|.R|SubstitutionOverride|, Int(1)) -> { R|/a| = R|/args|.R|SubstitutionOverride|(Int(0)) } else -> { R|/a| = R|/args|.R|kotlin/Any.toString|() when () { !=(R|/a|, Null(null)) && R|/a|.R|kotlin/String.equals|(String(cde)) -> { ^main Unit } } } } } public final fun run(f: R|() -> kotlin/Unit|): R|kotlin/Unit| { ^run R|/f|.R|SubstitutionOverride|() } public final fun lambda(): R|kotlin/Unit| { lvar a: R|kotlin/Int| R|/a| = Int(10) R|/run|( = run@fun (): R|kotlin/Unit| { R|/a| = Int(20) } ) } public final fun lambdaInitialization(): R|kotlin/Unit| { lvar a: R|kotlin/Int| R|/run|( = run@fun (): R|kotlin/Unit| { R|/a| = Int(20) } ) } public final fun notAssignedWhenNotUsed(p: R|kotlin/Int|): R|kotlin/Unit| { lvar v: R|kotlin/Int| when () { CMP(>, R|/p|.R|kotlin/Int.compareTo|(Int(0))) -> { R|/v| = Int(1) R|kotlin/io/print|(R|/v|) } } } public final var global: R|kotlin/Int| = Int(1) public get(): R|kotlin/Int| public set(value: R|kotlin/Int|): R|kotlin/Unit| public final class C : R|kotlin/Any| { public constructor(): R|C| { super() } public final var field: R|kotlin/Int| = Int(2) public get(): R|kotlin/Int| public set(value: R|kotlin/Int|): R|kotlin/Unit| public final fun foo(): R|kotlin/Unit| { R|kotlin/io/print|(this@R|/C|.R|/C.field|) R|kotlin/io/print|(R|/global|) } } public final fun withDelegate(): R|kotlin/Unit| { lvar s: R|kotlin/String|by Q|kotlin/properties/Delegates|.R|kotlin/properties/Delegates.notNull|() R|/s| = String() }