ensure expression valid, initializer expression should be already replaced (IDEA-125231)

This commit is contained in:
Anna Kozlova
2014-05-19 12:50:42 +04:00
parent 57fa2db5dd
commit 0da1a208cc
4 changed files with 30 additions and 1 deletions

View File

@@ -864,7 +864,7 @@ public class CreateFromUsageUtils {
public static boolean isAccessedForWriting(final PsiExpression[] expressionOccurences) {
for (PsiExpression expression : expressionOccurences) {
if(PsiUtil.isAccessedForWriting(expression)) return true;
if(expression.isValid() && PsiUtil.isAccessedForWriting(expression)) return true;
}
return false;

View File

@@ -0,0 +1,7 @@
// "Create Local Variable 'zeit'" "true"
public class A {
void foo() {
final String zeit = "";
}
}

View File

@@ -0,0 +1,7 @@
// "Create Local Variable 'zeit'" "true"
public class A {
void foo() {
ze<caret>it = "";
}
}

View File

@@ -1,9 +1,24 @@
package com.intellij.codeInsight.daemon.quickFix;
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
/**
* @author ven
*/
public class CreateLocalFromUsageTest extends LightQuickFixParameterizedTestCase {
@Override
protected void setUp() throws Exception {
super.setUp();
CodeStyleSettingsManager.getSettings(getProject()).GENERATE_FINAL_LOCALS = getTestName(true).contains("final");
}
@Override
protected void tearDown() throws Exception {
CodeStyleSettingsManager.getSettings(getProject()).GENERATE_FINAL_LOCALS = false;
super.tearDown();
}
public void test() throws Exception { doAllTests(); }
@Override