Skip to main content

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');
  }
}