resolve conflicting names when rename to 'ignored' (IDEA-184092)

This commit is contained in:
Anna Kozlova
2018-06-19 15:00:38 +03:00
parent f2583da268
commit 6a85ff1fb5
4 changed files with 67 additions and 2 deletions
@@ -16,10 +16,11 @@
package com.intellij.codeInsight.daemon.impl.quickfix;
import com.intellij.psi.PsiNamedElement;
import com.intellij.psi.codeStyle.JavaCodeStyleManager;
import org.jetbrains.annotations.NotNull;
public class RenameToIgnoredFix extends RenameElementFix {
public RenameToIgnoredFix(@NotNull PsiNamedElement element) {
super(element, "ignored");
super(element, JavaCodeStyleManager.getInstance(element.getProject()).suggestUniqueVariableName("ignored", element, true));
}
}
@@ -0,0 +1,27 @@
class Test23 {
void m() throws Exception {
try (FooContext fo<caret>o = new FooContext()) {
try (BarContext ignored = new BarContext()) {
fooBar();
}
}
}
private void fooBar() {
}
private class FooContext implements AutoCloseable {
@Override
public void close() throws Exception {
}
}
private class BarContext implements AutoCloseable{
@Override
public void close() throws Exception {
}
}
}
@@ -0,0 +1,27 @@
class Test23 {
void m() throws Exception {
try (FooContext ig<caret>nored1 = new FooContext()) {
try (BarContext ignored = new BarContext()) {
fooBar();
}
}
}
private void fooBar() {
}
private class FooContext implements AutoCloseable {
@Override
public void close() throws Exception {
}
}
private class BarContext implements AutoCloseable{
@Override
public void close() throws Exception {
}
}
}
@@ -16,7 +16,9 @@
package com.intellij.java.codeInsight.daemon;
import com.intellij.JavaTestUtil;
import com.intellij.codeInsight.CodeInsightBundle;
import com.intellij.codeInsight.daemon.ImplicitUsageProvider;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.codeInspection.deadCode.UnusedDeclarationInspection;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiField;
@@ -55,7 +57,15 @@ public class LightUnusedHighlightingFixtureTest extends LightCodeInsightFixtureT
myFixture.checkHighlighting();
}
public void testConflictingIgnoreParameters() {
String testFileName = getTestName(false);
myFixture.configureByFile(testFileName + ".java");
IntentionAction action = myFixture.getAvailableIntention(
CodeInsightBundle.message("rename.named.element.text", "foo", "ignored1"));
assertNotNull(action);
myFixture.launchAction(action);
myFixture.checkResultByFile(testFileName + "_after.java", true);
}
@Override
protected String getBasePath() {