mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
JavaPushDownDelegate#inlineSuperCall: prevent NPE when super method has no body (EA-208780)
GitOrigin-RevId: 6387fb8b498fb3a57e0dba0dd1540d1b25239623
This commit is contained in:
committed by
intellij-monorepo-bot
parent
06438cb76b
commit
38307a37c9
+5
-2
@@ -360,8 +360,11 @@ public class JavaPushDownDelegate extends PushDownDelegate<MemberInfo, PsiMember
|
||||
PsiElement element = reference.getElement();
|
||||
if (element instanceof PsiReferenceExpression) {
|
||||
PsiReferenceExpression referenceExpression = (PsiReferenceExpression)element;
|
||||
new InlineMethodProcessor(element.getProject(), superMethod, referenceExpression, null, true)
|
||||
.inlineMethodCall(referenceExpression);
|
||||
if (superMethod.getBody() != null) {
|
||||
// No super method body: either native method or compilation error
|
||||
new InlineMethodProcessor(element.getProject(), superMethod, referenceExpression, null, true)
|
||||
.inlineMethodCall(referenceExpression);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
|
||||
class Test {
|
||||
void foo() {
|
||||
super.foo();
|
||||
}
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
|
||||
class Super {
|
||||
native void foo();
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
|
||||
class Test extends Super {
|
||||
void foo() {
|
||||
super.foo();
|
||||
}
|
||||
}
|
||||
@@ -76,6 +76,7 @@ public class InlineSuperClassTest extends LightMultiFileTestCase {
|
||||
}
|
||||
public void testThisQualificationInsideAnonymous() { doTest(); }
|
||||
public void testOrderOfInnerClasses() { doTest(); }
|
||||
public void testSuperMethodWithoutBody() { doTest(); }
|
||||
|
||||
private void doTest() {
|
||||
doTest(false, false);
|
||||
|
||||
Reference in New Issue
Block a user