no_default_cases
No default cases.
Details
#Switches on enums and enum-like classes should not use a default
clause.
Enum-like classes are defined as concrete (non-abstract) classes that have:
- only private non-factory constructors
- two or more static const fields whose type is the enclosing class and
- no subclasses of the class in the defining library
DO define default behavior outside switch statements.
BAD:
dart
switch (testEnum) {
case TestEnum.A:
return '123';
case TestEnum.B:
return 'abc';
default:
return null;
}
GOOD:
dart
switch (testEnum) {
case TestEnum.A:
return '123';
case TestEnum.B:
return 'abc';
}
// Default here.
return null;
Enable
#To enable the no_default_cases
rule, add no_default_cases
under linter > rules in your analysis_options.yaml
file:
analysis_options.yaml
yaml
linter:
rules:
- no_default_cases
If you're instead using the YAML map syntax to configure linter rules, add no_default_cases: true
under linter > rules:
analysis_options.yaml
yaml
linter:
rules:
no_default_cases: true
Was this page's content helpful?
Thank you for your feedback!
Provide details Thank you for your feedback! Please let us know what we can do to improve.
Provide details Unless stated otherwise, the documentation on this site reflects Dart 3.8.1. Page last updated on 2025-03-07. View source or report an issue.