Skip to main content

avoid-wildcard-cases-with-sealed-classes

effort: 6m
dart 3.0+
teams+

Warns when a switch on a sealed class has a wildcard pattern case.

Once the sealed class has a new subclass, the analyzer will highlight all cases where this new subclass should be used, unless there is a wildcard case.

Example

❌ Bad:

void someFn(Vehicle value) {
final result = switch (value) {
Car() => 1,
// LINT: Avoid wildcard cases with sealed classes.
// Try enumerating all the possible values of the switch expression.
_ => 2,
};
}

sealed class Vehicle {}

class Car extends Vehicle {}

class Truck extends Vehicle {}

✅ Good:

void someFn(Vehicle value) {
final result = switch (value) {
Car() => 1,
Truck() => 2,
};
}

sealed class Vehicle {}

class Car extends Vehicle {}

class Truck extends Vehicle {}