mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-16 22:51:17 +07:00
reinit type selection manager after exprs invalidation (IDEA-72129)
This commit is contained in:
@@ -13,6 +13,7 @@ import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.JavaCodeStyleManager;
|
||||
import com.intellij.psi.codeStyle.VariableKind;
|
||||
import com.intellij.psi.impl.source.PsiClassReferenceType;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.refactoring.introduce.inplace.AbstractInplaceIntroducer;
|
||||
import com.intellij.refactoring.ui.TypeSelectorManagerImpl;
|
||||
@@ -22,7 +23,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
* User: anna
|
||||
*/
|
||||
public abstract class AbstractJavaInplaceIntroducer extends AbstractInplaceIntroducer<PsiVariable, PsiExpression> {
|
||||
protected final TypeSelectorManagerImpl myTypeSelectorManager;
|
||||
protected TypeSelectorManagerImpl myTypeSelectorManager;
|
||||
|
||||
public AbstractJavaInplaceIntroducer(final Project project,
|
||||
Editor editor,
|
||||
@@ -62,7 +63,11 @@ public abstract class AbstractJavaInplaceIntroducer extends AbstractInplaceIntro
|
||||
|
||||
@Override
|
||||
protected void restoreState(PsiVariable psiField) {
|
||||
final SmartTypePointer typePointer = SmartTypePointerManager.getInstance(myProject).createSmartTypePointer(getType());
|
||||
super.restoreState(psiField);
|
||||
myTypeSelectorManager = myExpr != null
|
||||
? new TypeSelectorManagerImpl(myProject, typePointer.getType(), myExpr, myOccurrences)
|
||||
: new TypeSelectorManagerImpl(myProject, typePointer.getType(), myOccurrences);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
public class Derr {
|
||||
|
||||
public static void main(String[] args) {
|
||||
long value;
|
||||
|
||||
value = new Lo<caret>ng(1);
|
||||
value = new Long(1);
|
||||
value = new Long(1);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
public class Derr {
|
||||
|
||||
public static final Long ONE = new Long(1);
|
||||
|
||||
public static void main(String[] args) {
|
||||
long value;
|
||||
|
||||
value = ONE;
|
||||
value = ONE;
|
||||
value = ONE;
|
||||
}
|
||||
}
|
||||
@@ -39,6 +39,18 @@ public class InplaceIntroduceConstantTest extends AbstractInplaceIntroduceTest {
|
||||
@Override
|
||||
public void pass(AbstractInplaceIntroducer inplaceIntroduceFieldPopup) {
|
||||
inplaceIntroduceFieldPopup.setReplaceAllOccurrences(true);
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void testReplaceAllWithClassRefType() throws Exception {
|
||||
|
||||
doTest(new Pass<AbstractInplaceIntroducer>() {
|
||||
@Override
|
||||
public void pass(AbstractInplaceIntroducer inplaceIntroduceFieldPopup) {
|
||||
inplaceIntroduceFieldPopup.setReplaceAllOccurrences(true);
|
||||
type("ONE");
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -52,6 +64,7 @@ public class InplaceIntroduceConstantTest extends AbstractInplaceIntroduceTest {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void testCorrectFinalPosition() throws Exception {
|
||||
|
||||
doTest(new Pass<AbstractInplaceIntroducer>() {
|
||||
|
||||
Reference in New Issue
Block a user