prefer_ contains
Always 'false' because 'indexOf' is always greater than or equal to -1.
Always 'true' because 'indexOf' is always greater than or equal to -1.
Unnecessary use of 'indexOf' to test for containment.
Description
#
The analyzer produces this diagnostic when the method indexOf is used and
the result is only compared with -1 or 0 in a way where the semantics
are equivalent to using contains.
Example
#
The following code produces this diagnostic because the condition in the
if statement is checking to see whether the list contains the string:
void f(List<String> l, String s) {
if (l.indexOf(s) < 0) {
// ...
}
}
Common fixes
#Use contains instead, negating the condition when necessary:
void f(List<String> l, String s) {
if (l.contains(s)) {
// ...
}
}
Unless stated otherwise, the documentation on this site reflects Dart 3.9.2. Page last updated on 2025-9-1. View source or report an issue.