FILE: RedeclaredValsAndVars.fir.kt public final class A : R|kotlin/Any| { public constructor(): R|A| { super() } public final operator fun component1(): R|kotlin/Int| { ^component1 Int(1) } public final operator fun component2(): R|kotlin/String| { ^component2 String() } } public final fun testRedeclaration(b: R|kotlin/Boolean|): R|kotlin/Unit| { lval y: R|kotlin/Int| = Int(1) lval y: R|kotlin/Int| = Int(2) lval _: R|kotlin/Int| = Int(3) lval _: R|kotlin/Int| = Int(4) fun (): R|kotlin/Unit| { lvar a: R|kotlin/Int| = Int(10) lvar a: R|kotlin/Int| = Int(11) } } public final fun testNoRedeclaration(list: R|kotlin/collections/List|, b: R|kotlin/Boolean|): R|kotlin/Unit| { { lval : R|kotlin/collections/Iterator| = R|/list|.R|SubstitutionOverride|>|() while(R|/|.R|SubstitutionOverride|()) { lval el: R|kotlin/Int| = R|/|.R|SubstitutionOverride|() { lval el: R|kotlin/Int| = Int(42) } } } when () { R|/b| -> { lval z: R|kotlin/Int| = Int(3) } else -> { lval z: R|kotlin/Int| = Int(4) } } lval : R|A| = R|/A.A|() lval _: R|kotlin/Int| = R|/|.R|/A.component1|() lval : R|kotlin/String| = R|/|.R|/A.component2|() }