blob: 3e379c3fbf0dbb570c07708eb6063c405553b10e [file] [log] [blame]
/*
TEST_OUTPUT:
---
fail_compilation/fail109.d(12): Error: enum member fail109.Bool.Unknown initialization with `Bool.True+1` causes overflow for type `bool`
---
*/
enum Bool : bool
{
False,
True,
Unknown
}
/* Bugzilla 11088
TEST_OUTPUT:
---
fail_compilation/fail109.d(25): Error: enum member fail109.E.B initialization with `E.A+1` causes overflow for type `int`
fail_compilation/fail109.d(31): Error: enum member fail109.E1.B initialization with `E1.A+1` causes overflow for type `short`
---
*/
enum E
{
A = int.max,
B
}
enum E1 : short
{
A = short.max,
B
}
/* Bugzilla 14950
TEST_OUTPUT:
---
fail_compilation/fail109.d(50): Deprecation: Comparison between different enumeration types `B` and `C`; If this behavior is intended consider using `std.conv.asOriginalType`
fail_compilation/fail109.d(50): Error: enum member fail109.B.end initialization with `B.start+1` causes overflow for type `C`
---
*/
enum C
{
start,
end
}
enum B
{
start = C.end,
end
}
/* Bugzilla 11849
TEST_OUTPUT:
---
fail_compilation/fail109.d(72): Error: enum member `fail109.RegValueType1a.Unknown` is forward referenced looking for `.max`
fail_compilation/fail109.d(79): Error: enum member `fail109.RegValueType1b.Unknown` is forward referenced looking for `.max`
fail_compilation/fail109.d(84): Error: enum member `fail109.RegValueType2a.Unknown` is forward referenced looking for `.min`
fail_compilation/fail109.d(91): Error: enum member `fail109.RegValueType2b.Unknown` is forward referenced looking for `.min`
---
*/
alias DWORD = uint;
enum : DWORD
{
REG_DWORD = 4
}
enum RegValueType1a : DWORD
{
Unknown = DWORD.max,
DWORD = REG_DWORD,
}
enum RegValueType1b : DWORD
{
DWORD = REG_DWORD,
Unknown = DWORD.max,
}
enum RegValueType2a : DWORD
{
Unknown = DWORD.min,
DWORD = REG_DWORD,
}
enum RegValueType2b : DWORD
{
DWORD = REG_DWORD,
Unknown = DWORD.min,
}