mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
extract method with folding: more precise unique name check
do not depend on the order of found references when search for name conflicts GitOrigin-RevId: 2b18f253bf28fbc9ae6423a0cc38336ef33fb7fa
This commit is contained in:
committed by
intellij-monorepo-bot
parent
301a4b6ab7
commit
795fe39b6b
+7
-9
@@ -147,7 +147,7 @@ class ParametersFolder {
|
||||
!Comparing.equal(nameInfo.names[0], data.name) &&
|
||||
!Comparing.equal(nameInfo.names[0], defaultName)) {
|
||||
data.name = nameInfo.names[0];
|
||||
setUniqueName(data, nameGenerator, scope, mostRanked);
|
||||
setUniqueName(data, nameGenerator, mostRanked, codeStyleManager);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -176,17 +176,15 @@ class ParametersFolder {
|
||||
}
|
||||
|
||||
private static void setUniqueName(@NotNull VariableData data, @NotNull UniqueNameGenerator nameGenerator,
|
||||
@NotNull LocalSearchScope scope, @NotNull PsiExpression expr) {
|
||||
@NotNull PsiExpression expr, @NotNull JavaCodeStyleManager codeStyleManager) {
|
||||
String name = data.name;
|
||||
int idx = 1;
|
||||
while (true) {
|
||||
if (nameGenerator.isUnique(name, "", "")) {
|
||||
final PsiVariable definedVariable = PsiResolveHelper.SERVICE.getInstance(expr.getProject()).resolveReferencedVariable(name, expr);
|
||||
if (definedVariable == null || !scope.containsRange(expr.getContainingFile(), definedVariable.getTextRange())) {
|
||||
data.name = name;
|
||||
nameGenerator.addExistingName(name);
|
||||
break;
|
||||
}
|
||||
if (nameGenerator.isUnique(name, "", "") &&
|
||||
name.equals(codeStyleManager.suggestUniqueVariableName(name, expr, true))) {
|
||||
data.name = name;
|
||||
nameGenerator.addExistingName(name);
|
||||
break;
|
||||
}
|
||||
name = data.name + idx++;
|
||||
}
|
||||
|
||||
+3
-3
@@ -10,9 +10,9 @@ class DeclaredOutputVariable {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private String newMethod(String s2, int i, String x) {
|
||||
if (s2 == null) return null;
|
||||
String s = s2;
|
||||
private String newMethod(String s1, int i, String x) {
|
||||
if (s1 == null) return null;
|
||||
String s = s1;
|
||||
System.out.println(s.charAt(i) + x);
|
||||
return s;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user