Files
c3c/test/test_suite/expressions/casts/cast_enum_to_various.c3

38 lines
537 B
Plaintext

struct Struct
{
int x;
}
enum Enum : uint
{
A, B
}
enum EnumB : char
{
C, D
}
alias Func = fn void(Enum);
fn void test1(Enum e)
{
bool a = (bool)e;
char b = (char)e.ordinal;
uint c = (uint)e.ordinal;
float d = (float)e; // #error: float
uint* f = (uint*)e; // #error: 'uint*'
}
fn void test2(Enum e)
{
Struct* g = (Struct*)(e); // #error: 'Struct*'
}
fn void test3(Enum e)
{
EnumB h = (EnumB)(e); // #error: 'EnumB'
Func i = (Func)(e); // #error: 'Func'
}