IDEA-128435 (SSR searches case sensitively when not instructed to do so)

This commit is contained in:
Bas Leijdekkers
2015-01-05 10:53:32 +01:00
parent 22cb875e2e
commit 3751017284
5 changed files with 80 additions and 23 deletions
@@ -87,7 +87,7 @@ public class JavaMatchingVisitor extends JavaElementVisitor {
myMatchingVisitor.setResult(((MatchingHandler)userData).match(comment, comment2, myMatchingVisitor.getMatchContext()));
}
else {
myMatchingVisitor.setResult(comment.getText().equals(comment2.getText()));
myMatchingVisitor.setResult(myMatchingVisitor.matchText(comment, comment2));
}
}
@@ -255,7 +255,7 @@ public class JavaMatchingVisitor extends JavaElementVisitor {
@Override
public void visitElement(PsiElement el) {
myMatchingVisitor.setResult(el.textMatches(myMatchingVisitor.getElement()));
myMatchingVisitor.setResult(myMatchingVisitor.matchText(el, myMatchingVisitor.getElement()));
}
@Override
@@ -286,11 +286,11 @@ public class JavaMatchingVisitor extends JavaElementVisitor {
boolean result;
if (!(element instanceof PsiJavaToken)) {
result = token.textMatches(element);
result = myMatchingVisitor.matchText(token, element);
} else {
final PsiJavaToken anotherToken = (PsiJavaToken)element;
result = token.getTokenType() == anotherToken.getTokenType() && token.textMatches(anotherToken);
result = token.getTokenType() == anotherToken.getTokenType() && myMatchingVisitor.matchText(token, anotherToken);
}
myMatchingVisitor.setResult(result);
@@ -645,7 +645,7 @@ public class JavaMatchingVisitor extends JavaElementVisitor {
// just variable
final PsiExpression reference2Qualifier = reference2.getQualifierExpression();
if (qualifier == null && reference2Qualifier == null) {
myMatchingVisitor.setResult(reference.getReferenceNameElement().textMatches(reference2.getReferenceNameElement()));
myMatchingVisitor.setResult(myMatchingVisitor.matchText(reference.getReferenceNameElement(), reference2.getReferenceNameElement()));
return;
}
@@ -658,9 +658,7 @@ public class JavaMatchingVisitor extends JavaElementVisitor {
myMatchingVisitor.setResult(myMatchingVisitor.handleTypedElement(referenceElement, referenceElement2));
}
else {
myMatchingVisitor.setResult(
(referenceElement2 != null && referenceElement != null && referenceElement.textMatches(referenceElement2)) ||
referenceElement == referenceElement2);
myMatchingVisitor.setResult(myMatchingVisitor.matchText(referenceElement, referenceElement2));
}
if (!myMatchingVisitor.getResult()) {
@@ -842,7 +840,8 @@ public class JavaMatchingVisitor extends JavaElementVisitor {
}
final String text = getText(el);
final String text2 = getText(el2);
final boolean equalsIgnorePackage = MatchUtils.compareWithNoDifferenceToPackage(text, text2);
final boolean caseSensitive = myMatchingVisitor.getMatchContext().getOptions().isCaseSensitiveMatch();
final boolean equalsIgnorePackage = MatchUtils.compareWithNoDifferenceToPackage(text, text2, !caseSensitive);
if (equalsIgnorePackage || !(el2 instanceof PsiJavaReference)) {
return equalsIgnorePackage;
}
@@ -850,10 +849,11 @@ public class JavaMatchingVisitor extends JavaElementVisitor {
final PsiElement element2 = ((PsiJavaReference)el2).resolve();
if (element2 instanceof PsiClass) {
return text.equals(((PsiClass)element2).getQualifiedName());
final String name = ((PsiClass)element2).getQualifiedName();
return caseSensitive ? text.equals(name) : text.equalsIgnoreCase(name);
}
else {
return MatchUtils.compareWithNoDifferenceToPackage(text, text2);
return MatchUtils.compareWithNoDifferenceToPackage(text, text2, !caseSensitive);
}
}
}
@@ -975,7 +975,7 @@ public class JavaMatchingVisitor extends JavaElementVisitor {
final PsiVariable var2 = (PsiVariable)myMatchingVisitor.getElement();
try {
myMatchingVisitor.setResult((var.getName().equals(var2.getName()) || isTypedVar) &&
myMatchingVisitor.setResult((myMatchingVisitor.matchText(var.getNameIdentifier(), var2.getNameIdentifier()) || isTypedVar) &&
((var.getParent() instanceof PsiClass && ((PsiClass)var.getParent()).isInterface()) ||
myMatchingVisitor.match(var.getModifierList(), var2.getModifierList())));
if (myMatchingVisitor.getResult()) {
@@ -1093,11 +1093,9 @@ public class JavaMatchingVisitor extends JavaElementVisitor {
final PsiReferenceExpression mcallRef1 = mcall.getMethodExpression();
final PsiReferenceExpression mcallRef2 = mcall2.getMethodExpression();
final String mcallname1 = mcallRef1.getReferenceName();
final String mcallname2 = mcallRef2.getReferenceName();
final boolean isTypedVar = myMatchingVisitor.getMatchContext().getPattern().isTypedVar(mcallRef1.getReferenceNameElement());
if (mcallname1 != null && !mcallname1.equals(mcallname2) && !isTypedVar) {
if (!myMatchingVisitor.matchText(mcallRef1.getReferenceNameElement(), mcallRef2.getReferenceNameElement()) && !isTypedVar) {
myMatchingVisitor.setResult(false);
return;
}
@@ -1177,7 +1175,7 @@ public class JavaMatchingVisitor extends JavaElementVisitor {
myMatchingVisitor.setResult(handler.match(const1, const2, myMatchingVisitor.getMatchContext()));
}
else {
myMatchingVisitor.setResult(const1.textMatches(const2));
myMatchingVisitor.setResult(myMatchingVisitor.matchText(const1, const2));
}
}
@@ -1535,7 +1533,7 @@ public class JavaMatchingVisitor extends JavaElementVisitor {
@Override
public void visitKeyword(PsiKeyword keyword) {
myMatchingVisitor.setResult(keyword.textMatches(myMatchingVisitor.getElement()));
myMatchingVisitor.setResult(myMatchingVisitor.matchText(keyword, myMatchingVisitor.getElement()));
}
@Override
@@ -1600,7 +1598,7 @@ public class JavaMatchingVisitor extends JavaElementVisitor {
myMatchingVisitor.setResult(((SubstitutionHandler)handler).handle(identifier2, myMatchingVisitor.getMatchContext()));
}
else {
myMatchingVisitor.setResult(identifier.textMatches(identifier2));
myMatchingVisitor.setResult(myMatchingVisitor.matchText(identifier, identifier2));
}
if (myMatchingVisitor.getResult()) {
@@ -1641,7 +1639,7 @@ public class JavaMatchingVisitor extends JavaElementVisitor {
}
}
myMatchingVisitor.setResult((clazz.getName().equals(clazz2.getName()) || isTypedVar) &&
myMatchingVisitor.setResult((myMatchingVisitor.matchText(clazz.getNameIdentifier(), clazz2.getNameIdentifier()) || isTypedVar) &&
compareClasses(clazz, clazz2));
if (myMatchingVisitor.getResult() && isTypedVar) {
@@ -1680,7 +1678,7 @@ public class JavaMatchingVisitor extends JavaElementVisitor {
return;
}
myMatchingVisitor.setResult((method.getName().equals(method2.getName()) || isTypedVar) &&
myMatchingVisitor.setResult((myMatchingVisitor.matchText(method.getNameIdentifier(), method2.getNameIdentifier()) || isTypedVar) &&
myMatchingVisitor.match(method.getModifierList(), method2.getModifierList()) &&
myMatchingVisitor.matchSons(method.getParameterList(), method2.getParameterList()) &&
myMatchingVisitor.match(method.getReturnTypeElement(), method2.getReturnTypeElement()) &&
@@ -383,7 +383,8 @@ public class JavaCompilingVisitor extends JavaRecursiveElementWalkingVisitor {
boolean classQualifier) {
final SubstitutionHandler substitutionHandler =
new SubstitutionHandler("__" + referenceText.replace('.', '_'), false, classQualifier ? 0 : 1, 1, false);
substitutionHandler.setPredicate(new RegExpPredicate(referenceText.replaceAll("\\.", "\\\\."), true, null, false, false));
final boolean caseSensitive = myCompilingVisitor.getContext().getOptions().isCaseSensitiveMatch();
substitutionHandler.setPredicate(new RegExpPredicate(referenceText.replaceAll("\\.", "\\\\."), caseSensitive, null, false, false));
myCompilingVisitor.getContext().getPattern().setHandler(expr, substitutionHandler);
return substitutionHandler;
}