Skip to main content

prefer_is_not_operator

Use the 'is!' operator rather than negating the value of the 'is' operator.

Description

#

The analyzer produces this diagnostic when the prefix ! operator is used to negate the result of an is test.

Example

#

The following code produces this diagnostic because the result of testing to see whether o is a String is negated using the prefix ! operator:

dart
String f(Object o) {
  if (!(o is String)) {
    return o.toString();
  }
  return o;
}

Common fixes

#

Use the is! operator instead:

dart
String f(Object o) {
  if (o is! String) {
    return o.toString();
  }
  return o;
}