mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-04 17:20:55 +07:00
inline method: do not conflict inline super expr inside inner class
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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() {}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
public class Usage {
|
||||
void foo() {
|
||||
new W() {
|
||||
protected void www() {
|
||||
super.www();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class W {
|
||||
protected void www() {}
|
||||
}
|
||||
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user