void _checkConstant()

in lib/src/rules/prefer_contains.dart [95:134]


  void _checkConstant(Expression expression, int value, TokenType type) {
    if (value == -1) {
      if (type == TokenType.EQ_EQ ||
          type == TokenType.BANG_EQ ||
          type == TokenType.LT_EQ ||
          type == TokenType.GT) {
        rule.reportLint(expression,
            errorCode: PreferContainsOverIndexOf.useContains);
      } else if (type == TokenType.LT) {
        // indexOf < -1 is always false
        rule.reportLint(expression,
            errorCode: PreferContainsOverIndexOf.alwaysFalse);
      } else if (type == TokenType.GT_EQ) {
        // indexOf >= -1 is always true
        rule.reportLint(expression,
            errorCode: PreferContainsOverIndexOf.alwaysTrue);
      }
    } else if (value == 0) {
      // 'indexOf >= 0' is same as 'contains',
      // and 'indexOf < 0' is same as '!contains'
      if (type == TokenType.GT_EQ || type == TokenType.LT) {
        rule.reportLint(expression,
            errorCode: PreferContainsOverIndexOf.useContains);
      }
    } else if (value < -1) {
      // 'indexOf' is always >= -1, so comparing with lesser values makes
      // no sense.
      if (type == TokenType.EQ_EQ ||
          type == TokenType.LT_EQ ||
          type == TokenType.LT) {
        rule.reportLint(expression,
            errorCode: PreferContainsOverIndexOf.alwaysFalse);
      } else if (type == TokenType.BANG_EQ ||
          type == TokenType.GT_EQ ||
          type == TokenType.GT) {
        rule.reportLint(expression,
            errorCode: PreferContainsOverIndexOf.alwaysTrue);
      }
    }
  }