// FIR_IDENTICAL // WITH_STDLIB // !DIAGNOSTICS: -UNREACHABLE_CODE tailrec fun foo1() { foo1() 1 } tailrec fun foo2() { foo2() val i = 1 } tailrec fun foo3() { foo3() foo1() } tailrec fun foo4() { if (true) foo4() else foo3() } tailrec fun foo5() { return foo5() foo4() } tailrec fun foo6(b: Boolean) { while (b) { foo6(!b) } } tailrec fun foo7_return() { while (true) { foo7_return() return } } tailrec fun foo7_break() { while (true) { foo7_break() break } } tailrec fun foo7_continue() { while (true) { foo7_continue() continue } } tailrec fun foo8() { while (true) { foo8() throw Exception() } foo8() } tailrec fun foo9() { foo9() fun bar() {} } tailrec fun foo10() { foo10() class Bar { val i = 1 } } tailrec fun foo11(): String { return "hello ${foo11()}" }