switch_on_type
Avoid switch statements on a 'Type'.
Description
#The analyzer produces this diagnostic when a switch statement or switch
expression is used on either the value of a Type
or a toString
call
on a Type
.
Example
#The following code produces this diagnostic because the switch statement
is used on a Type
:
dart
void f(Object o) {
switch (o.runtimeType) {
case const (int):
print('int');
case const (String):
print('String');
}
}
Common fixes
#Use pattern matching on the variable instead:
dart
void f(Object o) {
switch (o) {
case int():
print('int');
case String():
print('String');
}
}