Class CompareWithBooleanDiagnostic

All Implemented Interfaces:
BSLDiagnostic

Диагностика, выявляющая избыточное сравнение выражений с булевой константой Истина/Ложь через операторы = и <> (например Если Значение = Истина Тогда).

Срабатывает только если тип второго операнда выведен и он однозначно Булево (не объединение типов), иначе сравнение может быть обоснованным.

  • Constructor Details

  • Method Details

    • visitBinaryOperation

      protected void visitBinaryOperation(BinaryOperationNode node)
      Проверяет бинарную операцию на избыточное сравнение с булевой константой. Диагностика срабатывает, если операция является сравнением (= или <>), один из её операндов — булева константа (Истина/Ложь), а тип второго операнда однозначно Булево.
      Overrides:
      visitBinaryOperation in class ExpressionTreeVisitor
      Parameters:
      node - узел бинарной операции дерева выражений