dmd/compiler/test/fail_compilation/array_bool.d
Nick Treleaven dea9e0e586
Deprecate string literals as (static) assert conditions (#15860)
* Deprecate string literals as assert conditions

Fix Issue 14387 - Disallow string literals as assert conditions

* Avoid running expression semantic, only deprecate literals

Ignore enum strings.

* Fix runnable test
2023-12-29 18:10:55 +01:00

22 lines
652 B
D

/*
REQUIRED_ARGS: -de
TEST_OUTPUT:
---
fail_compilation/array_bool.d(13): Deprecation: assert condition cannot be a string literal
fail_compilation/array_bool.d(13): If intentional, use `"foo" !is null` instead to preserve behaviour
fail_compilation/array_bool.d(14): Deprecation: static assert condition cannot be a string literal
fail_compilation/array_bool.d(14): If intentional, use `"foo" !is null` instead to preserve behaviour
---
*/
void main()
{
assert("foo");
static assert("foo");
assert("foo".ptr); // OK
static assert("foo".ptr); // OK
enum e = "bar";
static assert(e); // OK
assert(e); // OK
}