// ISSUE: KT-58754 // IGNORE_BACKEND_K1: ANY // WITH_STDLIB fun foo(): Int = 1 fun bar(): Int = 2 class Test(b: Boolean) { val test_1 by lazy { val a = if (b) { ::foo } else { ::bar } a } val test_2 by lazy { val a = if (b) ::foo else ::bar a } val test_3 by lazy { val a = when { b -> { ::foo } else -> { ::bar } } a } val test_4 by lazy { val a = when { b -> ::foo else -> ::bar } a } } fun box(): String { with(Test(b = false)) { require(test_1() == bar()) require(test_2() == bar()) require(test_3() == bar()) require(test_4() == bar()) } with(Test(b = true)) { require(test_1() == foo()) require(test_2() == foo()) require(test_3() == foo()) require(test_4() == foo()) } return "OK" }