inline method: do not conflict inline super expr inside inner class

This commit is contained in:
anna
2010-02-02 16:55:39 +03:00
parent 13b362074f
commit 8d6c9d5fe0
4 changed files with 42 additions and 0 deletions

View File

@@ -145,7 +145,14 @@ public class InlineMethodProcessor extends BaseRefactoringProcessor {
}
private void addInaccessibleSuperCallsConflicts(final UsageInfo[] usagesIn, final MultiMap<PsiElement, String> conflicts) {
myMethod.accept(new JavaRecursiveElementWalkingVisitor(){
@Override
public void visitClass(PsiClass aClass) {}
@Override
public void visitAnonymousClass(PsiAnonymousClass aClass) {}
@Override
public void visitSuperExpression(PsiSuperExpression expression) {
super.visitSuperExpression(expression);

View File

@@ -0,0 +1,17 @@
public class Usage {
void foo() {
b<caret>ar();
}
void bar() {
new W() {
protected void www() {
super.www();
}
};
}
}
class W {
protected void www() {}
}

View File

@@ -0,0 +1,14 @@
public class Usage {
void foo() {
new W() {
protected void www() {
super.www();
}
};
}
}
class W {
protected void www() {}
}

View File

@@ -147,6 +147,10 @@ public class InlineMethodTest extends LightCodeInsightTestCase {
doTest();
}
public void testWithSuperInside() throws Exception {
doTest();
}
@Override
protected Sdk getProjectJDK() {
return JavaSdkImpl.getMockJdk15("java 1.5");