[java-refactoring] JavaUnresolvableLocalCollisionDetector: more precise collision detection (IDEA-350196)

GitOrigin-RevId: a46b338c88fa4407d45979b7291cab20f6c61de2
This commit is contained in:
Tagir Valeev
2024-04-09 14:08:21 +02:00
committed by intellij-monorepo-bot
parent 5330957e3f
commit 06977838b9
2 changed files with 38 additions and 12 deletions

View File

@@ -39,24 +39,14 @@ public final class JavaUnresolvableLocalCollisionDetector {
public void visitCollidingElement(PsiVariable collidingVariable) {
if (collidingVariable.equals(element)) return;
if (collidingVariable.isUnnamed()) return;
if (helper.resolveAccessibleReferencedVariable(newName, element) == null &&
helper.resolveAccessibleReferencedVariable(variable.getName(), collidingVariable) == null) return;
if (helper.resolveAccessibleReferencedVariable(newName, element) != collidingVariable &&
helper.resolveAccessibleReferencedVariable(variable.getName(), collidingVariable) != element) return;
LocalHidesRenamedLocalUsageInfo collision = new LocalHidesRenamedLocalUsageInfo(element, collidingVariable);
result.add(collision);
}
};
visitLocalsCollisions(element, newName, scope, null, collidingNameVisitor);
/*PsiElement place = scope.getLastChild();
PsiResolveHelper helper = place.getManager().getResolveHelper();
PsiVariable refVar = helper.resolveReferencedVariable(newName, place, null);
if (refVar != null) {
LocalHidesRenamedLocalUsageInfo collision = new LocalHidesRenamedLocalUsageInfo(element, refVar);
result.add(collision);
}*/
}
public static void visitLocalsCollisions(PsiElement element, final String newName,