diff --git a/java/java-impl/src/com/intellij/refactoring/extractMethodObject/ExtractMethodObjectProcessor.java b/java/java-impl/src/com/intellij/refactoring/extractMethodObject/ExtractMethodObjectProcessor.java index 8d449cf94e74..e423210e8177 100644 --- a/java/java-impl/src/com/intellij/refactoring/extractMethodObject/ExtractMethodObjectProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/extractMethodObject/ExtractMethodObjectProcessor.java @@ -36,7 +36,6 @@ import com.intellij.psi.codeStyle.JavaCodeStyleManager; import com.intellij.psi.codeStyle.VariableKind; import com.intellij.psi.controlFlow.ControlFlowUtil; import com.intellij.psi.impl.source.PsiImmediateClassType; -import com.intellij.psi.impl.source.resolve.DefaultParameterTypeInferencePolicy; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.search.searches.ReferencesSearch; import com.intellij.psi.util.PropertyUtil; @@ -469,12 +468,9 @@ public class ExtractMethodObjectProcessor extends BaseRefactoringProcessor { final PsiTypeParameter[] methodTypeParameters = getMethod().getTypeParameters(); if (methodTypeParameters.length > 0) { List typeSignature = new ArrayList(); - final PsiResolveHelper resolveHelper = JavaPsiFacade.getInstance(getMethod().getProject()).getResolveHelper(); + final PsiSubstitutor substitutor = methodCallExpression.resolveMethodGenerics().getSubstitutor(); for (final PsiTypeParameter typeParameter : methodTypeParameters) { - final PsiType type = resolveHelper.inferTypeForMethodTypeParameter(typeParameter, getMethod().getParameterList().getParameters(), - methodCallExpression.getArgumentList().getExpressions(), - PsiSubstitutor.EMPTY, methodCallExpression, - DefaultParameterTypeInferencePolicy.INSTANCE); + final PsiType type = substitutor.substitute(typeParameter); if (type == null || PsiType.NULL.equals(type)) { return ""; } diff --git a/java/java-tests/testSrc/com/intellij/refactoring/ExtractMethodObjectTest.java b/java/java-tests/testSrc/com/intellij/refactoring/ExtractMethodObjectTest.java index 745828a48fb1..1efcf2631c8f 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/ExtractMethodObjectTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/ExtractMethodObjectTest.java @@ -7,11 +7,12 @@ package com.intellij.refactoring; import com.intellij.JavaTestUtil; import com.intellij.codeInsight.TargetElementUtilBase; import com.intellij.openapi.application.ApplicationManager; -import com.intellij.pom.java.LanguageLevel; +import com.intellij.openapi.projectRoots.Sdk; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiMethod; import com.intellij.refactoring.extractMethodObject.ExtractMethodObjectHandler; import com.intellij.refactoring.extractMethodObject.ExtractMethodObjectProcessor; +import com.intellij.testFramework.IdeaTestUtil; import org.jetbrains.annotations.NotNull; public class ExtractMethodObjectTest extends LightRefactoringTestCase { @@ -123,7 +124,7 @@ public class ExtractMethodObjectTest extends LightRefactoringTestCase { } @Override - protected LanguageLevel getLanguageLevel() { - return LanguageLevel.JDK_1_7; + protected Sdk getProjectJDK() { + return IdeaTestUtil.getMockJdk18(); } }