Skip to content

Enum operations should produce base type #78

Description

@ntrel

Enum values are not strongly typed, so final switch is not compile-time exhaustive.

enum E
{
	a = 2,
	b = 3
}
unittest
{
	E e = E.b;
	e++;
	e *= 2;
	//[email protected](13): No appropriate switch clause found
	final switch (e)
	{
		case E.a, E.b:
	}
	e = E.b ^ E.a;
	assert(e == 1);
	assert(e >= E.min); //fails
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions