Java 类com.intellij.psi.PsiConditionalExpression 实例源码

项目:intellij-ce-playground    文件:JavaConditionalUnwrapper.java   
@Override
protected void doUnwrap(PsiElement element, Context context) throws IncorrectOperationException {
  PsiConditionalExpression cond = (PsiConditionalExpression)element.getParent();

  PsiElement savedBlock;

  if (cond.getElseExpression() == element) {
    savedBlock = element;
  }
  else {
    savedBlock = cond.getThenExpression();
  }

  context.extractElement(savedBlock, cond);

  if (cond.getParent() instanceof PsiExpressionList) {
    context.delete(cond);
  }
  else {
    context.deleteExactly(cond);
  }
}
项目:intellij-ce-playground    文件:ConstantConditionalExpressionInspection.java   
@Override
public void visitConditionalExpression(
  PsiConditionalExpression expression) {
  super.visitConditionalExpression(expression);
  final PsiExpression condition = expression.getCondition();
  final PsiExpression thenExpression = expression.getThenExpression();
  if (thenExpression == null) {
    return;
  }
  final PsiExpression elseExpression = expression.getElseExpression();
  if (elseExpression == null) {
    return;
  }
  if (BoolUtils.isFalse(condition) || BoolUtils.isTrue(condition)) {
    registerError(expression, expression);
  }
}
项目:intellij-ce-playground    文件:UnnecessaryConditionalExpressionInspection.java   
@Override
public void visitConditionalExpression(
  PsiConditionalExpression expression) {
  super.visitConditionalExpression(expression);
  final PsiExpression thenExpression = expression.getThenExpression();
  if (thenExpression == null) {
    return;
  }
  final PsiExpression elseExpression = expression.getElseExpression();
  if (elseExpression == null) {
    return;
  }
  if (BoolUtils.isFalse(thenExpression) &&
      BoolUtils.isTrue(elseExpression) ||
      BoolUtils.isTrue(thenExpression) &&
      BoolUtils.isFalse(elseExpression)) {
    registerError(expression, expression);
  }
}
项目:intellij-ce-playground    文件:NegatedConditionalInspection.java   
@Override
public void visitConditionalExpression(PsiConditionalExpression expression) {
  super.visitConditionalExpression(expression);
  final PsiExpression thenBranch = expression.getThenExpression();
  if (thenBranch == null) {
    return;
  }
  final PsiExpression elseBranch = expression.getElseExpression();
  if (elseBranch == null) {
    return;
  }
  final PsiExpression condition = expression.getCondition();
  if (!ExpressionUtils.isNegation(condition, m_ignoreNegatedNullComparison, false)) {
    return;
  }
  registerError(condition);
}
项目:intellij-ce-playground    文件:RemoveConditionalPredicate.java   
public boolean satisfiedBy(PsiElement element) {
  if (!(element instanceof PsiConditionalExpression)) {
    return false;
  }
  final PsiConditionalExpression condition =
    (PsiConditionalExpression)element;
  PsiExpression thenExpression = condition.getThenExpression();
  PsiExpression elseExpression = condition.getElseExpression();
  if (thenExpression == null || elseExpression == null) {
    return false;
  }
  thenExpression = ParenthesesUtils.stripParentheses(thenExpression);
  elseExpression = ParenthesesUtils.stripParentheses(elseExpression);
  if (thenExpression == null || elseExpression == null) {
    return false;
  }
  @NonNls final String thenText = thenExpression.getText();
  @NonNls final String elseText = elseExpression.getText();
  if ("true".equals(elseText) && "false".equals(thenText)) {
    return !ErrorUtil.containsError(element);
  }
  else if ("true".equals(thenText) && "false".equals(elseText)) {
    return !ErrorUtil.containsError(element);
  }
  return false;
}
项目:tools-idea    文件:JavaConditionalUnwrapper.java   
@Override
protected void doUnwrap(PsiElement element, Context context) throws IncorrectOperationException {
  PsiConditionalExpression cond = (PsiConditionalExpression)element.getParent();

  PsiElement savedBlock;

  if (cond.getElseExpression() == element) {
    savedBlock = element;
  }
  else {
    savedBlock = cond.getThenExpression();
  }

  context.extractElement(savedBlock, cond);

  if (cond.getParent() instanceof PsiExpressionList) {
    context.delete(cond);
  }
  else {
    context.deleteExactly(cond);
  }
}
项目:tools-idea    文件:ConstantConditionalExpressionInspection.java   
@Override
public void visitConditionalExpression(
  PsiConditionalExpression expression) {
  super.visitConditionalExpression(expression);
  final PsiExpression condition = expression.getCondition();
  final PsiExpression thenExpression = expression.getThenExpression();
  if (thenExpression == null) {
    return;
  }
  final PsiExpression elseExpression = expression.getElseExpression();
  if (elseExpression == null) {
    return;
  }
  if (BoolUtils.isFalse(condition) || BoolUtils.isTrue(condition)) {
    registerError(expression, expression);
  }
}
项目:tools-idea    文件:UnnecessaryConditionalExpressionInspection.java   
@Override
public void visitConditionalExpression(
  PsiConditionalExpression expression) {
  super.visitConditionalExpression(expression);
  final PsiExpression thenExpression = expression.getThenExpression();
  if (thenExpression == null) {
    return;
  }
  final PsiExpression elseExpression = expression.getElseExpression();
  if (elseExpression == null) {
    return;
  }
  if (BoolUtils.isFalse(thenExpression) &&
      BoolUtils.isTrue(elseExpression) ||
      BoolUtils.isTrue(thenExpression) &&
      BoolUtils.isFalse(elseExpression)) {
    registerError(expression, expression);
  }
}
项目:tools-idea    文件:NegatedConditionalInspection.java   
@Override
public void visitConditionalExpression(PsiConditionalExpression expression) {
  super.visitConditionalExpression(expression);
  final PsiExpression thenBranch = expression.getThenExpression();
  if (thenBranch == null) {
    return;
  }
  final PsiExpression elseBranch = expression.getElseExpression();
  if (elseBranch == null) {
    return;
  }
  final PsiExpression condition = expression.getCondition();
  if (!ExpressionUtils.isNegation(condition, m_ignoreNegatedNullComparison, false)) {
    return;
  }
  registerError(condition);
}
项目:tools-idea    文件:RemoveConditionalPredicate.java   
public boolean satisfiedBy(PsiElement element) {
  if (!(element instanceof PsiConditionalExpression)) {
    return false;
  }
  final PsiConditionalExpression condition =
    (PsiConditionalExpression)element;
  PsiExpression thenExpression = condition.getThenExpression();
  PsiExpression elseExpression = condition.getElseExpression();
  if (thenExpression == null || elseExpression == null) {
    return false;
  }
  thenExpression = ParenthesesUtils.stripParentheses(thenExpression);
  elseExpression = ParenthesesUtils.stripParentheses(elseExpression);
  if (thenExpression == null || elseExpression == null) {
    return false;
  }
  @NonNls final String thenText = thenExpression.getText();
  @NonNls final String elseText = elseExpression.getText();
  if ("true".equals(elseText) && "false".equals(thenText)) {
    return !ErrorUtil.containsError(element);
  }
  else if ("true".equals(thenText) && "false".equals(elseText)) {
    return !ErrorUtil.containsError(element);
  }
  return false;
}
项目:consulo-java    文件:JavaConditionalUnwrapper.java   
@Override
protected void doUnwrap(PsiElement element, Context context) throws IncorrectOperationException {
  PsiConditionalExpression cond = (PsiConditionalExpression)element.getParent();

  PsiElement savedBlock;

  if (cond.getElseExpression() == element) {
    savedBlock = element;
  }
  else {
    savedBlock = cond.getThenExpression();
  }

  context.extractElement(savedBlock, cond);

  if (cond.getParent() instanceof PsiExpressionList) {
    context.delete(cond);
  }
  else {
    context.deleteExactly(cond);
  }
}
项目:consulo-java    文件:RemoveConditionalPredicate.java   
public boolean satisfiedBy(PsiElement element) {
  if (!(element instanceof PsiConditionalExpression)) {
    return false;
  }
  final PsiConditionalExpression condition =
    (PsiConditionalExpression)element;
  PsiExpression thenExpression = condition.getThenExpression();
  PsiExpression elseExpression = condition.getElseExpression();
  if (thenExpression == null || elseExpression == null) {
    return false;
  }
  thenExpression = ParenthesesUtils.stripParentheses(thenExpression);
  elseExpression = ParenthesesUtils.stripParentheses(elseExpression);
  if (thenExpression == null || elseExpression == null) {
    return false;
  }
  @NonNls final String thenText = thenExpression.getText();
  @NonNls final String elseText = elseExpression.getText();
  if ("true".equals(elseText) && "false".equals(thenText)) {
    return !ErrorUtil.containsError(element);
  }
  else if ("true".equals(thenText) && "false".equals(elseText)) {
    return !ErrorUtil.containsError(element);
  }
  return false;
}
项目:consulo-java    文件:ConstantConditionalExpressionInspection.java   
@Override
public void visitConditionalExpression(
  PsiConditionalExpression expression) {
  super.visitConditionalExpression(expression);
  final PsiExpression condition = expression.getCondition();
  final PsiExpression thenExpression = expression.getThenExpression();
  if (thenExpression == null) {
    return;
  }
  final PsiExpression elseExpression = expression.getElseExpression();
  if (elseExpression == null) {
    return;
  }
  if (BoolUtils.isFalse(condition) || BoolUtils.isTrue(condition)) {
    registerError(expression, expression);
  }
}
项目:consulo-java    文件:UnnecessaryConditionalExpressionInspection.java   
@Override
public void visitConditionalExpression(
  PsiConditionalExpression expression) {
  super.visitConditionalExpression(expression);
  final PsiExpression thenExpression = expression.getThenExpression();
  if (thenExpression == null) {
    return;
  }
  final PsiExpression elseExpression = expression.getElseExpression();
  if (elseExpression == null) {
    return;
  }
  if (BoolUtils.isFalse(thenExpression) &&
      BoolUtils.isTrue(elseExpression) ||
      BoolUtils.isTrue(thenExpression) &&
      BoolUtils.isFalse(elseExpression)) {
    registerError(expression, expression);
  }
}
项目:consulo-java    文件:NegatedConditionalInspection.java   
@Override
public void visitConditionalExpression(PsiConditionalExpression expression) {
  super.visitConditionalExpression(expression);
  final PsiExpression thenBranch = expression.getThenExpression();
  if (thenBranch == null) {
    return;
  }
  final PsiExpression elseBranch = expression.getElseExpression();
  if (elseBranch == null) {
    return;
  }
  final PsiExpression condition = expression.getCondition();
  if (!ExpressionUtils.isNegation(condition, m_ignoreNegatedNullComparison, false)) {
    return;
  }
  registerError(condition);
}
项目:intellij-ce-playground    文件:SimplifiableConditionalExpressionInspection.java   
@Override
@NotNull
public String buildErrorString(Object... infos) {
  final PsiConditionalExpression expression = (PsiConditionalExpression)infos[0];
  return InspectionGadgetsBundle.message("simplifiable.conditional.expression.problem.descriptor",
                                         calculateReplacementExpression(expression));
}
项目:intellij-ce-playground    文件:SimplifiableConditionalExpressionInspection.java   
@NonNls
static String calculateReplacementExpression(PsiConditionalExpression expression) {
  final PsiExpression thenExpression = expression.getThenExpression();
  final PsiExpression elseExpression = expression.getElseExpression();
  final PsiExpression condition = expression.getCondition();
  assert thenExpression != null;
  assert elseExpression != null;
  if (EquivalenceChecker.expressionsAreEquivalent(BoolUtils.getNegated(thenExpression), elseExpression)) {
      return ParenthesesUtils.getText(condition, ParenthesesUtils.EQUALITY_PRECEDENCE) + " != " +
             BoolUtils.getNegatedExpressionText(thenExpression, ParenthesesUtils.EQUALITY_PRECEDENCE);
  }
  else if (EquivalenceChecker.expressionsAreEquivalent(thenExpression, BoolUtils.getNegated(elseExpression))) {
    return ParenthesesUtils.getText(condition, ParenthesesUtils.EQUALITY_PRECEDENCE) + " == " +
           ParenthesesUtils.getText(thenExpression, ParenthesesUtils.EQUALITY_PRECEDENCE);
  }
  if (BoolUtils.isTrue(thenExpression)) {
    final String elseExpressionText = ParenthesesUtils.getText(elseExpression, ParenthesesUtils.OR_PRECEDENCE);
    return ParenthesesUtils.getText(condition, ParenthesesUtils.OR_PRECEDENCE) + " || " + elseExpressionText;
  }
  else if (BoolUtils.isFalse(thenExpression)) {
    @NonNls final String elseExpressionText = ParenthesesUtils.getText(elseExpression, ParenthesesUtils.AND_PRECEDENCE);
    return BoolUtils.getNegatedExpressionText(condition, ParenthesesUtils.AND_PRECEDENCE) + " && " + elseExpressionText;
  }
  if (BoolUtils.isFalse(elseExpression)) {
    @NonNls final String thenExpressionText = ParenthesesUtils.getText(thenExpression, ParenthesesUtils.AND_PRECEDENCE);
    return ParenthesesUtils.getText(condition, ParenthesesUtils.AND_PRECEDENCE) + " && " + thenExpressionText;
  }
  else {
    @NonNls final String thenExpressionText = ParenthesesUtils.getText(thenExpression, ParenthesesUtils.OR_PRECEDENCE);
    return BoolUtils.getNegatedExpressionText(condition, ParenthesesUtils.OR_PRECEDENCE) + " || " + thenExpressionText;
  }
}
项目:intellij-ce-playground    文件:SimplifiableConditionalExpressionInspection.java   
@Override
public void visitConditionalExpression(PsiConditionalExpression expression) {
  super.visitConditionalExpression(expression);
  final PsiExpression thenExpression = expression.getThenExpression();
  if (thenExpression == null) {
    return;
  }
  final PsiExpression elseExpression = expression.getElseExpression();
  if (elseExpression == null) {
    return;
  }
  final PsiType thenType = thenExpression.getType();
  if (!PsiType.BOOLEAN.equals(thenType)) {
    return;
  }
  final PsiType elseType = elseExpression.getType();
  if (!PsiType.BOOLEAN.equals(elseType)) {
    return;
  }
  final boolean thenConstant = BoolUtils.isFalse(thenExpression) || BoolUtils.isTrue(thenExpression);
  final boolean elseConstant = BoolUtils.isFalse(elseExpression) || BoolUtils.isTrue(elseExpression);
  if (thenConstant == elseConstant) {
    if (EquivalenceChecker.expressionsAreEquivalent(BoolUtils.getNegated(thenExpression), elseExpression) ||
        EquivalenceChecker.expressionsAreEquivalent(thenExpression, BoolUtils.getNegated(elseExpression))) {
      registerError(expression, expression);
    }
    return;
  }
  registerError(expression, expression);
}
项目:intellij-ce-playground    文件:ConstantConditionalExpressionInspection.java   
@Override
@NotNull
public String buildErrorString(Object... infos) {
  final PsiConditionalExpression expression =
    (PsiConditionalExpression)infos[0];
  return InspectionGadgetsBundle.message(
    "constant.conditional.expression.problem.descriptor",
    calculateReplacementExpression(expression));
}
项目:intellij-ce-playground    文件:ConstantConditionalExpressionInspection.java   
static String calculateReplacementExpression(
  PsiConditionalExpression exp) {
  final PsiExpression thenExpression = exp.getThenExpression();
  final PsiExpression elseExpression = exp.getElseExpression();
  final PsiExpression condition = exp.getCondition();
  assert thenExpression != null;
  assert elseExpression != null;
  if (BoolUtils.isTrue(condition)) {
    return thenExpression.getText();
  }
  else {
    return elseExpression.getText();
  }
}
项目:intellij-ce-playground    文件:ConstantConditionalExpressionInspection.java   
@Override
public void doFix(Project project, ProblemDescriptor descriptor)
  throws IncorrectOperationException {
  final PsiConditionalExpression expression =
    (PsiConditionalExpression)descriptor.getPsiElement();
  final String newExpression =
    calculateReplacementExpression(expression);
  PsiReplacementUtil.replaceExpression(expression, newExpression);
}
项目:intellij-ce-playground    文件:UnnecessaryConditionalExpressionInspection.java   
@Override
@NotNull
public String buildErrorString(Object... infos) {
  final PsiConditionalExpression expression =
    (PsiConditionalExpression)infos[0];
  return InspectionGadgetsBundle.message(
    "simplifiable.conditional.expression.problem.descriptor",
    calculateReplacementExpression(expression));
}
项目:intellij-ce-playground    文件:UnnecessaryConditionalExpressionInspection.java   
static String calculateReplacementExpression(
  PsiConditionalExpression exp) {
  final PsiExpression thenExpression = exp.getThenExpression();
  final PsiExpression elseExpression = exp.getElseExpression();
  final PsiExpression condition = exp.getCondition();

  if (BoolUtils.isFalse(thenExpression) &&
      BoolUtils.isTrue(elseExpression)) {
    return BoolUtils.getNegatedExpressionText(condition);
  }
  else {
    return condition.getText();
  }
}
项目:intellij-ce-playground    文件:UnnecessaryConditionalExpressionInspection.java   
@Override
public void doFix(Project project, ProblemDescriptor descriptor)
  throws IncorrectOperationException {
  final PsiConditionalExpression expression =
    (PsiConditionalExpression)descriptor.getPsiElement();
  final String newExpression =
    calculateReplacementExpression(expression);
  PsiReplacementUtil.replaceExpression(expression, newExpression);
}
项目:intellij-ce-playground    文件:NestedConditionalExpressionInspection.java   
@Override
public void visitConditionalExpression(
  PsiConditionalExpression expression) {
  super.visitConditionalExpression(expression);
  if (PsiTreeUtil.getParentOfType(expression,
                                  PsiConditionalExpression.class) == null) {
    return;
  }
  registerError(expression);
}
项目:intellij-ce-playground    文件:ConditionalExpressionWithIdenticalBranchesInspection.java   
@Override
public void visitConditionalExpression(PsiConditionalExpression expression) {
  super.visitConditionalExpression(expression);
  final PsiExpression thenExpression = expression.getThenExpression();
  final PsiExpression elseExpression = expression.getElseExpression();
  if (thenExpression != null && EquivalenceChecker.expressionsAreEquivalent(thenExpression, elseExpression)) {
    registerError(expression);
  }
}
项目:intellij-ce-playground    文件:NegateConditionalIntention.java   
@Override
protected void processIntention(@NotNull PsiElement element) {
  final PsiConditionalExpression conditionalExpression = (PsiConditionalExpression)element;
  final String newExpression = conditionalExpression.getCondition().getText() + '?' +
                               BoolUtils.getNegatedExpressionText(conditionalExpression.getThenExpression()) + ':' +
                               BoolUtils.getNegatedExpressionText(conditionalExpression.getElseExpression());
  replaceExpressionWithNegatedExpressionString(newExpression, conditionalExpression);
}
项目:intellij-ce-playground    文件:NegateConditionalIntention.java   
@Override
public boolean satisfiedBy(PsiElement element) {
  if (!(element instanceof PsiConditionalExpression)) {
    return false;
  }
  final PsiConditionalExpression conditionalExpression = (PsiConditionalExpression)element;
  final PsiType type = conditionalExpression.getType();
  return PsiType.BOOLEAN.equals(type);
}
项目:intellij-ce-playground    文件:FlipConditionalPredicate.java   
public boolean satisfiedBy(PsiElement element) {
  if (!(element instanceof PsiConditionalExpression)) {
    return false;
  }
  final PsiConditionalExpression condition =
    (PsiConditionalExpression)element;
  if (condition.getThenExpression() == null ||
      condition.getElseExpression() == null) {
    return false;
  }
  return !ErrorUtil.containsError(element);
}
项目:tools-idea    文件:SimplifiableConditionalExpressionInspection.java   
@Override
@NotNull
public String buildErrorString(Object... infos) {
  final PsiConditionalExpression expression =
    (PsiConditionalExpression)infos[0];
  return InspectionGadgetsBundle.message(
    "simplifiable.conditional.expression.problem.descriptor",
    calculateReplacementExpression(expression));
}
项目:tools-idea    文件:SimplifiableConditionalExpressionInspection.java   
@Override
public void doFix(Project project, ProblemDescriptor descriptor)
  throws IncorrectOperationException {
  final PsiConditionalExpression expression =
    (PsiConditionalExpression)descriptor.getPsiElement();
  final String newExpression =
    calculateReplacementExpression(expression);
  replaceExpression(expression, newExpression);
}
项目:tools-idea    文件:SimplifiableConditionalExpressionInspection.java   
@Override
public void visitConditionalExpression(
  PsiConditionalExpression expression) {
  super.visitConditionalExpression(expression);
  final PsiExpression thenExpression = expression.getThenExpression();
  if (thenExpression == null) {
    return;
  }
  final PsiType thenType = thenExpression.getType();
  if (thenType != PsiType.BOOLEAN) {
    return;
  }
  final PsiExpression elseExpression = expression.getElseExpression();
  if (elseExpression == null) {
    return;
  }
  final PsiType elseType = elseExpression.getType();
  if (elseType != PsiType.BOOLEAN) {
    return;
  }
  final boolean thenConstant = BoolUtils.isFalse(thenExpression) ||
                               BoolUtils.isTrue(thenExpression);
  final boolean elseConstant = BoolUtils.isFalse(elseExpression) ||
                               BoolUtils.isTrue(elseExpression);
  if (thenConstant == elseConstant) {
    return;
  }
  registerError(expression, expression);
}
项目:tools-idea    文件:ConstantConditionalExpressionInspection.java   
@Override
@NotNull
public String buildErrorString(Object... infos) {
  final PsiConditionalExpression expression =
    (PsiConditionalExpression)infos[0];
  return InspectionGadgetsBundle.message(
    "constant.conditional.expression.problem.descriptor",
    calculateReplacementExpression(expression));
}
项目:tools-idea    文件:ConstantConditionalExpressionInspection.java   
static String calculateReplacementExpression(
  PsiConditionalExpression exp) {
  final PsiExpression thenExpression = exp.getThenExpression();
  final PsiExpression elseExpression = exp.getElseExpression();
  final PsiExpression condition = exp.getCondition();
  assert thenExpression != null;
  assert elseExpression != null;
  if (BoolUtils.isTrue(condition)) {
    return thenExpression.getText();
  }
  else {
    return elseExpression.getText();
  }
}
项目:tools-idea    文件:ConstantConditionalExpressionInspection.java   
@Override
public void doFix(Project project, ProblemDescriptor descriptor)
  throws IncorrectOperationException {
  final PsiConditionalExpression expression =
    (PsiConditionalExpression)descriptor.getPsiElement();
  final String newExpression =
    calculateReplacementExpression(expression);
  replaceExpression(expression, newExpression);
}
项目:tools-idea    文件:UnnecessaryConditionalExpressionInspection.java   
@Override
@NotNull
public String buildErrorString(Object... infos) {
  final PsiConditionalExpression expression =
    (PsiConditionalExpression)infos[0];
  return InspectionGadgetsBundle.message(
    "simplifiable.conditional.expression.problem.descriptor",
    calculateReplacementExpression(expression));
}
项目:tools-idea    文件:UnnecessaryConditionalExpressionInspection.java   
static String calculateReplacementExpression(
  PsiConditionalExpression exp) {
  final PsiExpression thenExpression = exp.getThenExpression();
  final PsiExpression elseExpression = exp.getElseExpression();
  final PsiExpression condition = exp.getCondition();

  if (BoolUtils.isFalse(thenExpression) &&
      BoolUtils.isTrue(elseExpression)) {
    return BoolUtils.getNegatedExpressionText(condition);
  }
  else {
    return condition.getText();
  }
}
项目:tools-idea    文件:UnnecessaryConditionalExpressionInspection.java   
@Override
public void doFix(Project project, ProblemDescriptor descriptor)
  throws IncorrectOperationException {
  final PsiConditionalExpression expression =
    (PsiConditionalExpression)descriptor.getPsiElement();
  final String newExpression =
    calculateReplacementExpression(expression);
  replaceExpression(expression, newExpression);
}
项目:tools-idea    文件:NestedConditionalExpressionInspection.java   
@Override
public void visitConditionalExpression(
  PsiConditionalExpression expression) {
  super.visitConditionalExpression(expression);
  if (PsiTreeUtil.getParentOfType(expression,
                                  PsiConditionalExpression.class) == null) {
    return;
  }
  registerError(expression);
}
项目:tools-idea    文件:ConditionalExpressionWithIdenticalBranchesInspection.java   
@Override
public void visitConditionalExpression(
  PsiConditionalExpression expression) {
  super.visitConditionalExpression(expression);
  final PsiExpression thenExpression = expression.getThenExpression();
  final PsiExpression elseExpression = expression.getElseExpression();
  if (EquivalenceChecker.expressionsAreEquivalent(thenExpression,
                                                  elseExpression)) {
    registerError(expression);
  }
}