diff --git a/java/java-impl-refactorings/src/com/intellij/refactoring/convertToInstanceMethod/ConvertToInstanceMethodProcessor.java b/java/java-impl-refactorings/src/com/intellij/refactoring/convertToInstanceMethod/ConvertToInstanceMethodProcessor.java index 575a95201e00..c5bebdb80bec 100644 --- a/java/java-impl-refactorings/src/com/intellij/refactoring/convertToInstanceMethod/ConvertToInstanceMethodProcessor.java +++ b/java/java-impl-refactorings/src/com/intellij/refactoring/convertToInstanceMethod/ConvertToInstanceMethodProcessor.java @@ -396,8 +396,8 @@ public final class ConvertToInstanceMethodProcessor extends BaseRefactoringProce final PsiExpression qualifier = copy.getMethodExpression().getQualifierExpression(); if (qualifier != null) { qualifier.delete(); - PsiMethod method = copy.resolveMethod(); - if (methodCall.resolveMethod() == method || method == null) { + JavaResolveResult resolveResult = copy.resolveMethodGenerics(); + if (methodCall.resolveMethod() == resolveResult.getElement() || !resolveResult.isValidResult()) { return null; } return createQualifiedThisExpression(); diff --git a/java/java-tests/testData/refactoring/convertToInstance8Method/NoConflictingMembers2.java b/java/java-tests/testData/refactoring/convertToInstance8Method/NoConflictingMembers2.java new file mode 100644 index 000000000000..c9b94a5155fe --- /dev/null +++ b/java/java-tests/testData/refactoring/convertToInstance8Method/NoConflictingMembers2.java @@ -0,0 +1,10 @@ +class Test { + int i; + void run(int i) {} +} +class Other { + static void run(Test test) { + System.out.println(test.i); + test.run(test.i); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/convertToInstance8Method/NoConflictingMembers2.java.after b/java/java-tests/testData/refactoring/convertToInstance8Method/NoConflictingMembers2.java.after new file mode 100644 index 000000000000..55b4ad57385b --- /dev/null +++ b/java/java-tests/testData/refactoring/convertToInstance8Method/NoConflictingMembers2.java.after @@ -0,0 +1,12 @@ +class Test { + int i; + + void run() { + System.out.println(i); + run(i); + } + + void run(int i) {} +} +class Other { +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/refactoring/convertToInstanceMethod/ConvertToInstance8MethodTest.java b/java/java-tests/testSrc/com/intellij/java/refactoring/convertToInstanceMethod/ConvertToInstance8MethodTest.java index 169607bee09f..cee76891fd13 100644 --- a/java/java-tests/testSrc/com/intellij/java/refactoring/convertToInstanceMethod/ConvertToInstance8MethodTest.java +++ b/java/java-tests/testSrc/com/intellij/java/refactoring/convertToInstanceMethod/ConvertToInstance8MethodTest.java @@ -13,6 +13,7 @@ public class ConvertToInstance8MethodTest extends ConvertToInstanceMethodTest { public void testConflictingMembers() { doTest(0); } public void testNoConflictingMembers() { doTest(0); } + public void testNoConflictingMembers2() { doTest(0); } public void testThisInsteadOfNoQualifier() { doTest(0);