visitIsExpression method

  1. @override
void visitIsExpression(
  1. IsExpression e,
  2. void arg
)
override

Implementation

@override
void visitIsExpression(IsExpression e, void arg) {
  if (e.distinctFromSyntax && options.version < SqliteVersion.v3_39) {
    // `IS NOT DISTINCT FROM` is the same thing as `IS`
    final alternative = e.negated ? 'IS' : 'IS NOT';
    final source = (e.distinct != null && e.from != null)
        ? [e.distinct!, e.from!].toSingleEntity
        : e;

    context.reportError(AnalysisError(
      type: AnalysisErrorType.notSupportedInDesiredVersion,
      message:
          '`DISTINCT FROM` requires sqlite 3.39, try using `$alternative`',
      relevantNode: source,
    ));
  }

  visitChildren(e, arg);
}