From 935d64d9a9a4ed588c4a474635c0590de1bd1e45 Mon Sep 17 00:00:00 2001 From: "Maxim.Medvedev" Date: Wed, 21 Mar 2012 16:54:36 +0400 Subject: [PATCH] IDEA-83207 False "Duplicate switch case" warning in Groovy --- .../utils/EquivalenceChecker.java | 31 ++----------------- 1 file changed, 3 insertions(+), 28 deletions(-) diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/utils/EquivalenceChecker.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/utils/EquivalenceChecker.java index c67351f4dced..b5f58a664f38 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/utils/EquivalenceChecker.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/utils/EquivalenceChecker.java @@ -703,9 +703,9 @@ public class EquivalenceChecker { private static boolean rangeExpressionsAreEquivalent(@NotNull GrRangeExpression rangeExp1, @NotNull GrRangeExpression rangeExp2) { - return expressionsAreEquivalent(getLowerBoundForRange(rangeExp1), getLowerBoundForRange(rangeExp1)) && - expressionsAreEquivalent(getUpperBoundForRange(rangeExp1), getUpperBoundForRange(rangeExp1)) && - isInclusive(rangeExp1) == isInclusive(rangeExp2); + return expressionsAreEquivalent(rangeExp1.getLeftOperand(), rangeExp2.getLeftOperand()) && + expressionsAreEquivalent(rangeExp1.getRightOperand(), rangeExp2.getRightOperand()) && + isInclusive(rangeExp1) == isInclusive(rangeExp2); } private static boolean isInclusive(GrRangeExpression range) { @@ -717,31 +717,6 @@ public class EquivalenceChecker { return false; } - @Nullable - private static GrExpression getLowerBoundForRange(GrRangeExpression range) { - for (PsiElement child : range.getChildren()) { - if (child instanceof GrExpression) { - return (GrExpression) child; - } - } - return null; - } - - @Nullable - private static GrExpression getUpperBoundForRange(GrRangeExpression range) { - boolean firstChildSeen = false; - for (PsiElement child : range.getChildren()) { - if (child instanceof GrExpression) { - if (firstChildSeen) { - return (GrExpression) child; - } else { - firstChildSeen = true; - } - } - } - return null; - } - private static boolean assignmentExpressionsAreEquivalent(@NotNull GrAssignmentExpression assignExp1, @NotNull GrAssignmentExpression assignExp2) { final IElementType sign1 = assignExp1.getOperationToken();