blob: 08e11da20176e7d231314180f0f44c382a81b4ce [file] [log] [blame]
/*
TEST_OUTPUT:
---
fail_compilation/fail2456.d(14): Error: cannot put `scope(success)` statement inside `finally` block
---
*/
void test_success()
{
try
{
}
finally
{
scope(success) {} // NG
}
}
/*
TEST_OUTPUT:
---
fail_compilation/fail2456.d(31): Error: cannot put `scope(failure)` statement inside `finally` block
---
*/
void test_failure()
{
try
{
}
finally
{
scope(failure) {} // NG
}
}
/*
TEST_OUTPUT:
---
---
*/
void test_exit()
{
try
{
}
finally
{
scope(exit) {} // OK
}
}
/*
TEST_OUTPUT:
---
fail_compilation/fail2456.d(64): Error: cannot put `scope(success)` statement inside `scope(success)`
fail_compilation/fail2456.d(65): Error: cannot put `scope(failure)` statement inside `scope(success)`
fail_compilation/fail2456.d(78): Error: cannot put `scope(success)` statement inside `scope(exit)`
fail_compilation/fail2456.d(79): Error: cannot put `scope(failure)` statement inside `scope(exit)`
---
*/
void test2456a()
{
scope(success)
{
scope(success) {} // NG
scope(failure) {} // NG
scope(exit) {} // OK
}
scope(failure)
{
scope(success) {} // OK
scope(failure) {} // OK
scope(exit) {} // OK
}
scope(exit)
{
scope(success) {} // NG
scope(failure) {} // NG
scope(exit) {} // OK
}
}
/*
TEST_OUTPUT:
---
fail_compilation/fail2456.d(96): Error: cannot put `catch` statement inside `scope(success)`
fail_compilation/fail2456.d(108): Error: cannot put `catch` statement inside `scope(exit)`
---
*/
void test2456b()
{
scope(success)
{
try {}
catch (Throwable) {} // NG
}
scope(failure)
{
try {}
catch (Throwable) {} // OK
}
scope(exit)
{
try {}
catch (Throwable) {} // NG
}
}