Files
kotlin-fork/compiler/testData/ir/irText/expressions/badInlinedBreakContinue.kt.txt
T
2024-02-16 10:19:38 +00:00

236 lines
5.1 KiB
Kotlin
Vendored

inline fun bar(block1: Function0<Unit>, noinline block2: Function0<Unit>) {
block1.invoke()
block2.invoke()
}
inline fun baz(crossinline block: Function0<Unit>) {
block.invoke()
}
inline fun foo(block: Function0<Unit>) {
block.invoke()
}
inline fun <T : Any?> Iterable<T>.myForEach(action: Function1<T, Unit>) {
{ // BLOCK
val tmp_0: Iterator<T> = <this>.iterator()
while (tmp_0.hasNext()) { // BLOCK
val element: T = tmp_0.next()
action.invoke(p1 = element)
}
}
}
fun test1() {
error("") /* ErrorExpression */
local fun <no name provided>() {
error("") /* ErrorExpression */
}
.invoke()
local fun <no name provided>() {
error("") /* ErrorExpression */
}
.invoke()
foo(block = local fun <anonymous>() {
error("") /* ErrorExpression */
}
)
foo(block = local fun <anonymous>() {
error("") /* ErrorExpression */
}
)
foo(block = local fun <no name provided>() {
error("") /* ErrorExpression */
}
)
foo(block = local fun <no name provided>() {
error("") /* ErrorExpression */
}
)
}
fun test2() {
L1@ while (true) { // BLOCK
error("") /* ErrorExpression */
local fun <no name provided>() {
error("") /* ErrorExpression */
}
.invoke()
local fun <no name provided>() {
error("") /* ErrorExpression */
}
.invoke()
foo(block = local fun <anonymous>() {
error("") /* ErrorExpression */
}
)
foo(block = local fun <anonymous>() {
error("") /* ErrorExpression */
}
)
foo(block = local fun <no name provided>() {
error("") /* ErrorExpression */
}
)
foo(block = local fun <no name provided>() {
error("") /* ErrorExpression */
}
)
}
}
fun test3() {
L1@ while (true) { // BLOCK
val lambda: Function0<Unit> = local fun <anonymous>() {
error("") /* ErrorExpression */
local fun <no name provided>() {
error("") /* ErrorExpression */
}
.invoke()
local fun <no name provided>() {
error("") /* ErrorExpression */
}
.invoke()
foo(block = local fun <anonymous>() {
error("") /* ErrorExpression */
}
)
foo(block = local fun <anonymous>() {
error("") /* ErrorExpression */
}
)
foo(block = local fun <no name provided>() {
error("") /* ErrorExpression */
}
)
foo(block = local fun <no name provided>() {
error("") /* ErrorExpression */
}
)
}
}
}
fun test4() {
while (local fun <anonymous>(): Nothing {
return error("") /* ErrorExpression */
}
.invoke()) { // BLOCK
}
while (local fun <anonymous>(): Nothing {
return error("") /* ErrorExpression */
}
.invoke()) { // BLOCK
}
while (local fun <no name provided>() {
error("") /* ErrorExpression */
}
.invoke() /*as Boolean */) { // BLOCK
}
while (local fun <no name provided>() {
error("") /* ErrorExpression */
}
.invoke() /*as Boolean */) { // BLOCK
}
while (foo(block = local fun <anonymous>() {
error("") /* ErrorExpression */
}
) /*as Boolean */) { // BLOCK
}
while (foo(block = local fun <anonymous>() {
error("") /* ErrorExpression */
}
) /*as Boolean */) { // BLOCK
}
while (foo(block = local fun <no name provided>() {
error("") /* ErrorExpression */
}
) /*as Boolean */) { // BLOCK
}
while (foo(block = local fun <no name provided>() {
error("") /* ErrorExpression */
}
) /*as Boolean */) { // BLOCK
}
}
fun test5() {
listOf<Int>(elements = [1, 2, 3]).forEach<Int>(action = local fun <anonymous>(i: Int) {
when {
EQEQ(arg0 = i, arg1 = 2) -> error("") /* ErrorExpression */
}
}
)
listOf<Int>(elements = [1, 2, 3]).forEach<Int>(action = local fun <anonymous>(i: Int) {
when {
EQEQ(arg0 = i, arg1 = 2) -> error("") /* ErrorExpression */
}
}
)
listOf<Int>(elements = [1, 2, 3]).forEach<Int>(action = local fun <no name provided>(i: Int) {
when {
EQEQ(arg0 = i, arg1 = 2) -> error("") /* ErrorExpression */
}
}
)
listOf<Int>(elements = [1, 2, 3]).forEach<Int>(action = local fun <no name provided>(i: Int) {
when {
EQEQ(arg0 = i, arg1 = 2) -> error("") /* ErrorExpression */
}
}
)
}
fun test6() {
while (true) { // BLOCK
bar(block1 = local fun <anonymous>() {
return Unit
}
, block2 = local fun <anonymous>() {
error("") /* ErrorExpression */
}
)
bar(block1 = local fun <anonymous>() {
return Unit
}
, block2 = local fun <anonymous>() {
error("") /* ErrorExpression */
}
)
bar(block1 = local fun <no name provided>() {
}
, block2 = local fun <no name provided>() {
error("") /* ErrorExpression */
}
)
bar(block1 = local fun <no name provided>() {
}
, block2 = local fun <no name provided>() {
error("") /* ErrorExpression */
}
)
}
}
fun test7() {
1.rangeTo(other = 3).myForEach<Int>(action = local fun <anonymous>(i: Int) {
when {
EQEQ(arg0 = i, arg1 = 2) -> { // BLOCK
error("") /* ErrorExpression */
}
}
}
)
}
fun test8() {
while (true) { // BLOCK
baz(block = local fun <anonymous>() {
error("") /* ErrorExpression */
}
)
}
}