change signature: call to super in class/field initializer

EA-93569 - IAE: MethodSignatureUtil.isSuperMethod
This commit is contained in:
Anna.Kozlova
2017-01-05 19:01:34 +01:00
parent 33e98fefa0
commit 91291a4d94
3 changed files with 10 additions and 2 deletions
@@ -280,7 +280,7 @@ public class JavaChangeSignatureUsageProcessor implements ChangeSignatureUsagePr
boolean toInsertDefaultValue = needDefaultValue(changeInfo, caller);
if (toInsertDefaultValue && ref instanceof PsiReferenceExpression) {
final PsiExpression qualifierExpression = ((PsiReferenceExpression)ref).getQualifierExpression();
if (qualifierExpression instanceof PsiSuperExpression && callerSignatureIsAboutToChangeToo(caller, usages)) {
if (qualifierExpression instanceof PsiSuperExpression && caller != null && callerSignatureIsAboutToChangeToo(caller, usages)) {
toInsertDefaultValue = false;
}
}
@@ -300,7 +300,7 @@ public class JavaChangeSignatureUsageProcessor implements ChangeSignatureUsagePr
}
}
private static boolean callerSignatureIsAboutToChangeToo(final PsiMethod caller, final UsageInfo[] usages) {
private static boolean callerSignatureIsAboutToChangeToo(@NotNull final PsiMethod caller, final UsageInfo[] usages) {
for (UsageInfo usage : usages) {
if (usage instanceof MethodCallUsageInfo &&
MethodSignatureUtil.isSuperMethod(((MethodCallUsageInfo)usage).getReferencedMethod(), caller)) {
@@ -5,5 +5,9 @@ class Foo {
void foo(){
super.foo();
}
{
super.foo();
}
}
}
@@ -5,5 +5,9 @@ class Foo {
void foo(int i){
super.foo(i);
}
{
super.foo(0);
}
}
}