make method static: warn about broken method references if filed or class need to be passed; NPE (EA-66661 - NPE: MakeMethodStaticProcessor.changeExternalUsage)

This commit is contained in:
Anna Kozlova
2015-03-23 20:33:24 +01:00
parent 7a0e5f9426
commit d18781b365
4 changed files with 26 additions and 2 deletions
@@ -83,7 +83,7 @@ public class MakeMethodStaticProcessor extends MakeMethodOrClassStaticProcessor<
@Override
protected MultiMap<PsiElement, String> getConflictDescriptions(UsageInfo[] usages) {
MultiMap<PsiElement, String> descriptions = super.getConflictDescriptions(usages);
if (mySettings.isMakeClassParameter()) {
if (mySettings.isMakeClassParameter() || mySettings.isMakeFieldParameters()) {
for (UsageInfo usage : usages) {
PsiElement element = usage.getElement();
if (element instanceof PsiMethodReferenceExpression) {
@@ -329,7 +329,7 @@ public class MakeMethodStaticProcessor extends MakeMethodOrClassStaticProcessor<
if (anchor != null) {
anchor = argList.addAfter(fieldRef, anchor);
}
else {
else if (argList != null) {
if (exprs.length > 0) {
anchor = argList.addBefore(fieldRef, exprs[0]);
}
@@ -0,0 +1,10 @@
class Test4 {
void test() {
Runnable f = Test4::yyy;
}
String myField = "";
static void yyy() {
System.out.println(myField);
}
}
@@ -0,0 +1,10 @@
class Test4 {
void test() {
Runnable f = this::yyy;
}
String myField = "";
void yy<caret>y() {
System.out.println(myField);
}
}
@@ -203,6 +203,10 @@ public class MakeMethodStaticTest extends LightRefactoringTestCase {
doTest(true);
}
public void testThisMethodReference() throws Exception {
doTest(false);
}
public void testPreserveParametersAlignment() throws Exception {
doTest();
}