extract method with new inference

This commit is contained in:
Anna Kozlova
2014-02-24 18:59:45 +01:00
parent 351b9b1ebe
commit d7d0eecd06
2 changed files with 6 additions and 9 deletions
@@ -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<String> typeSignature = new ArrayList<String>();
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 "";
}
@@ -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();
}
}