[Case("MyCase(int)")]
public enum MyEnum
{
}
[AttributeUsage(.Enum)]
public struct CaseAttribute : Attribute, IOnTypeInit
{
private String m_case;
public this(String @case)
{
m_case = @case;
}
[Comptime]
public void OnTypeInit(Type type, Self* prev)
{
Compiler.EmitTypeBody(type, scope $"case {m_case};");
}
}
This code immediately crashes the IDE. Tested on 03/04/2026.
Two variants I've tested that compile successfully:
- Removing the enum's payload (
[Case("MyCase")]).
- Adding a "dummy" case that includes a payload. An "empty" dummy case still crashes.
[Case("MyCase(int)")]
public enum MyEnum
{
case Pad(int); // Compiles successfully.
//case Pad; // Crashes!
}
This code immediately crashes the IDE. Tested on 03/04/2026.
Two variants I've tested that compile successfully:
[Case("MyCase")]).