diff --git a/java/java-impl/src/com/intellij/codeInsight/ChangeContextUtil.java b/java/java-impl/src/com/intellij/codeInsight/ChangeContextUtil.java index d7e685bcac21..36984b30e487 100644 --- a/java/java-impl/src/com/intellij/codeInsight/ChangeContextUtil.java +++ b/java/java-impl/src/com/intellij/codeInsight/ChangeContextUtil.java @@ -197,10 +197,10 @@ public class ChangeContextUtil { refExpr.setQualifierExpression(factory.createReferenceExpression(containingClass)); } } - else if (thisAccessExpr != null){ + else { final PsiClass realParentClass = refExpr.getCopyableUserData(REF_MEMBER_THIS_CLASS_KEY); refExpr.putCopyableUserData(REF_MEMBER_THIS_CLASS_KEY, null); - if (thisClass != null && realParentClass != null && + if (thisAccessExpr != null && thisClass != null && realParentClass != null && InheritanceUtil.isInheritorOrSelf(thisClass, realParentClass, true)) { boolean needQualifier = true; PsiElement refElement = refExpr.resolve(); diff --git a/java/java-impl/src/com/intellij/refactoring/inline/InlineToAnonymousConstructorProcessor.java b/java/java-impl/src/com/intellij/refactoring/inline/InlineToAnonymousConstructorProcessor.java index 4662005f61e9..d826d9998d59 100644 --- a/java/java-impl/src/com/intellij/refactoring/inline/InlineToAnonymousConstructorProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/inline/InlineToAnonymousConstructorProcessor.java @@ -21,8 +21,6 @@ import com.intellij.openapi.util.Key; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.text.StringUtil; import com.intellij.patterns.ElementPattern; -import static com.intellij.patterns.PlatformPatterns.psiElement; -import static com.intellij.patterns.PsiJavaPatterns.psiExpressionStatement; import com.intellij.psi.*; import com.intellij.psi.codeStyle.JavaCodeStyleManager; import com.intellij.psi.impl.source.codeStyle.CodeEditUtil; @@ -40,6 +38,9 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import static com.intellij.patterns.PlatformPatterns.psiElement; +import static com.intellij.patterns.PsiJavaPatterns.psiExpressionStatement; + /** * @author yole */ @@ -153,8 +154,8 @@ class InlineToAnonymousConstructorProcessor { if (PsiTreeUtil.getChildrenOfType(anonymousClass, PsiMember.class) == null) { anonymousClass.deleteChildRange(anonymousClass.getLBrace(), anonymousClass.getRBrace()); } - ChangeContextUtil.decodeContextInfo(anonymousClass, anonymousClass, null); - final PsiNewExpression superNewExpression = (PsiNewExpression) myNewExpression.replace(superNewExpressionTemplate); + PsiNewExpression superNewExpression = (PsiNewExpression) myNewExpression.replace(superNewExpressionTemplate); + superNewExpression = (PsiNewExpression)ChangeContextUtil.decodeContextInfo(superNewExpression, superNewExpression.getAnonymousClass(), null); JavaCodeStyleManager.getInstance(superNewExpression.getProject()).shortenClassReferences(superNewExpression); } diff --git a/java/java-tests/testSrc/com/intellij/refactoring/inline/InlineToAnonymousClassTest.java b/java/java-tests/testSrc/com/intellij/refactoring/inline/InlineToAnonymousClassTest.java index e20c487b9ea4..8c5038259605 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/inline/InlineToAnonymousClassTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/inline/InlineToAnonymousClassTest.java @@ -165,7 +165,7 @@ public class InlineToAnonymousClassTest extends LightCodeInsightTestCase { doTest(false, false); } - public void _testOuterClassFieldAccess() throws Exception { + public void testOuterClassFieldAccess() throws Exception { doTest(false, false); }