Files
c3c/test/test_suite/defer/defer_single_stmt.c3
Christoffer Lerno b31629c5e8 Removal of "or_else jump". Fixes to defer & macros/blocks, optimized failable return. @noscope macros removed. Disallow meaningless defer.
Correctly show error on return or rethrow inside of a defer. Fix copying an access expression. Removing scoped expr.
2022-03-26 20:16:36 +01:00

42 lines
589 B
Plaintext

fn void test1()
{
while (1) defer foo(); // #error: Looping over a raw 'defer'
}
fn void test1a()
{
while (1) { defer foo(); }
}
fn void test2()
{
if (1) defer foo(); // #error: An 'if' statement may not be followed by a raw 'defer'
}
fn void test2a()
{
if (1) { defer foo(); }
}
fn void test3()
{
defer defer foo(); // #error: A defer may not have a body consisting of a raw 'defer'
}
fn void test3a()
{
defer { defer foo(); }
}
fn void test4()
{
for (;;) defer foo(); // #error: Looping over a raw 'defer'
}
fn void test4a()
{
for(;;) { defer foo(); }
}
fn void foo() {}