mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
type migration: cleanup (warnings)
This commit is contained in:
+1
-1
@@ -80,7 +80,7 @@ public class TypeConversionDescriptor extends TypeConversionDescriptorBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public PsiExpression replace(PsiExpression expression, TypeEvaluator evaluator) {
|
||||
public PsiExpression replace(PsiExpression expression, @NotNull TypeEvaluator evaluator) {
|
||||
if (getExpression() != null) expression = getExpression();
|
||||
return replaceExpression(expression, getStringToReplace(), getReplaceByString());
|
||||
}
|
||||
|
||||
+2
-3
@@ -348,7 +348,7 @@ public class GuavaInspection extends BaseJavaLocalInspectionTool {
|
||||
throw new AssertionError();
|
||||
}
|
||||
|
||||
private boolean performTypeMigration(List<PsiElement> elements, List<PsiType> types) {
|
||||
private void performTypeMigration(List<PsiElement> elements, List<PsiType> types) {
|
||||
PsiFile containingFile = null;
|
||||
for (PsiElement element : elements) {
|
||||
final PsiFile currentContainingFile = element.getContainingFile();
|
||||
@@ -360,7 +360,7 @@ public class GuavaInspection extends BaseJavaLocalInspectionTool {
|
||||
}
|
||||
}
|
||||
LOG.assertTrue(containingFile != null);
|
||||
if (!FileModificationService.getInstance().prepareFileForWrite(containingFile)) return false;
|
||||
if (!FileModificationService.getInstance().prepareFileForWrite(containingFile)) return;
|
||||
try {
|
||||
final TypeMigrationRules rules = new TypeMigrationRules();
|
||||
rules.setBoundScope(GlobalSearchScopesCore.projectProductionScope(containingFile.getProject())
|
||||
@@ -377,7 +377,6 @@ public class GuavaInspection extends BaseJavaLocalInspectionTool {
|
||||
catch (IncorrectOperationException e) {
|
||||
LOG.error(e);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private Function<PsiElement, PsiType> createMigrationTypeFunction(@NotNull final List<PsiElement> elements,
|
||||
|
||||
+4
-5
@@ -12,7 +12,6 @@ import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.CodeStyleManager;
|
||||
import com.intellij.psi.impl.AllowedApiFilterExtension;
|
||||
@@ -23,7 +22,6 @@ import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import com.intellij.refactoring.typeMigration.*;
|
||||
import com.intellij.refactoring.typeMigration.rules.ThreadLocalConversionRule;
|
||||
import com.intellij.refactoring.typeMigration.usageInfo.TypeMigrationUsageInfo;
|
||||
import com.intellij.refactoring.util.RefactoringUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.Query;
|
||||
@@ -31,7 +29,6 @@ import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedList;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
@@ -43,13 +40,15 @@ public class ConvertFieldToThreadLocalIntention extends PsiElementBaseIntentionA
|
||||
@NotNull
|
||||
@Override
|
||||
public String getText() {
|
||||
return "Convert to ThreadLocal";
|
||||
//noinspection DialogTitleCapitalization
|
||||
return getFamilyName();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public String getFamilyName() {
|
||||
return getText();
|
||||
//noinspection DialogTitleCapitalization
|
||||
return "Convert to ThreadLocal";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+1
-1
@@ -120,7 +120,7 @@ public class AtomicConversionRule extends TypeConversionRule {
|
||||
return new TypeConversionDescriptor("$qualifier$ " + sign + " $val$",
|
||||
"$qualifier$.addAndGet(" + (operationSign == JavaTokenType.MINUSEQ ? "-($val$))" : "$val$)")) {
|
||||
@Override
|
||||
public PsiExpression replace(PsiExpression expression, TypeEvaluator evaluator) {
|
||||
public PsiExpression replace(PsiExpression expression, @NotNull TypeEvaluator evaluator) {
|
||||
final PsiMethodCallExpression result = (PsiMethodCallExpression)super.replace(expression, evaluator);
|
||||
final PsiExpression argument = result.getArgumentList().getExpressions()[0];
|
||||
if (argument instanceof PsiPrefixExpression) {
|
||||
|
||||
+15
-17
@@ -81,7 +81,7 @@ public class ListArrayConversionRule extends TypeConversionRule {
|
||||
}
|
||||
}
|
||||
|
||||
if (member instanceof PsiField && member.getName().equals("length")) {
|
||||
if (member instanceof PsiField && "length".equals(member.getName())) {
|
||||
return new TypeConversionDescriptor("$qualifier$.length", "$qualifier$.size()");
|
||||
}
|
||||
|
||||
@@ -102,22 +102,20 @@ public class ListArrayConversionRule extends TypeConversionRule {
|
||||
@Nullable
|
||||
public static PsiType evaluateCollectionsType(PsiClassType classType, PsiExpression expression) {
|
||||
final PsiClassType.ClassResolveResult classResolveResult = PsiUtil.resolveGenericsClassInType(classType);
|
||||
if (classResolveResult != null) {
|
||||
final PsiClass psiClass = classResolveResult.getElement();
|
||||
if (psiClass != null) {
|
||||
final GlobalSearchScope allScope = GlobalSearchScope.allScope(psiClass.getProject());
|
||||
final PsiClass collectionClass =
|
||||
JavaPsiFacade.getInstance(psiClass.getProject()).findClass(CommonClassNames.JAVA_UTIL_LIST, allScope);
|
||||
if (collectionClass != null && InheritanceUtil.isInheritorOrSelf(psiClass, collectionClass, true)) {
|
||||
final PsiSubstitutor derivedSubstitutor = classResolveResult.getSubstitutor();
|
||||
if (PsiUtil.isRawSubstitutor(psiClass, derivedSubstitutor)) return null;
|
||||
final PsiSubstitutor substitutor =
|
||||
TypeConversionUtil.getClassSubstitutor(collectionClass, psiClass, derivedSubstitutor);
|
||||
assert substitutor != null;
|
||||
final PsiType type = substitutor.substitute(collectionClass.getTypeParameters()[0]);
|
||||
assert type != null;
|
||||
return PsiImplUtil.normalizeWildcardTypeByPosition(type, expression);
|
||||
}
|
||||
final PsiClass psiClass = classResolveResult.getElement();
|
||||
if (psiClass != null) {
|
||||
final GlobalSearchScope allScope = GlobalSearchScope.allScope(psiClass.getProject());
|
||||
final PsiClass collectionClass =
|
||||
JavaPsiFacade.getInstance(psiClass.getProject()).findClass(CommonClassNames.JAVA_UTIL_LIST, allScope);
|
||||
if (collectionClass != null && InheritanceUtil.isInheritorOrSelf(psiClass, collectionClass, true)) {
|
||||
final PsiSubstitutor derivedSubstitutor = classResolveResult.getSubstitutor();
|
||||
if (PsiUtil.isRawSubstitutor(psiClass, derivedSubstitutor)) return null;
|
||||
final PsiSubstitutor substitutor =
|
||||
TypeConversionUtil.getClassSubstitutor(collectionClass, psiClass, derivedSubstitutor);
|
||||
assert substitutor != null;
|
||||
final PsiType type = substitutor.substitute(collectionClass.getTypeParameters()[0]);
|
||||
assert type != null;
|
||||
return PsiImplUtil.normalizeWildcardTypeByPosition(type, expression);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
||||
+3
-2
@@ -23,6 +23,7 @@ import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Locale;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
@@ -58,7 +59,7 @@ public class LongAdderConversionRule extends TypeConversionRule {
|
||||
if (INCREMENT_DECREMENT_METHODS.contains(name)) {
|
||||
if (isMethodCallWithIgnoredReturnValue(context)) return null;
|
||||
assert name != null;
|
||||
String replacementMethodName = name.toLowerCase().contains("increment") ? "increment" : "decrement";
|
||||
String replacementMethodName = name.toLowerCase(Locale.ROOT).contains("increment") ? "increment" : "decrement";
|
||||
return new TypeConversionDescriptor("$v$.$method$()", "$v$." + replacementMethodName + "()");
|
||||
}
|
||||
else if ("getAndAdd".equals(name) || "addAndGet".equals(name)) {
|
||||
@@ -87,7 +88,7 @@ public class LongAdderConversionRule extends TypeConversionRule {
|
||||
return null;
|
||||
}
|
||||
|
||||
private boolean isMethodCallWithIgnoredReturnValue(PsiExpression context) {
|
||||
private static boolean isMethodCallWithIgnoredReturnValue(PsiExpression context) {
|
||||
final PsiElement methodCall = context.getParent();
|
||||
if (!(methodCall instanceof PsiMethodCallExpression)) {
|
||||
return true;
|
||||
|
||||
-2
@@ -7,7 +7,6 @@ package com.intellij.refactoring.typeMigration.rules;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.impl.PsiDiamondTypeUtil;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import com.intellij.psi.util.TypeConversionUtil;
|
||||
@@ -212,7 +211,6 @@ public class ThreadLocalConversionRule extends TypeConversionRule {
|
||||
final PsiType initial = resolveResult.getSubstitutor().substitute(typeParameters[0]);
|
||||
final PsiPrimitiveType unboxedInitialType = PsiPrimitiveType.getUnboxedType(initial);
|
||||
if (unboxedInitialType != null) {
|
||||
LOG.assertTrue(initial != null);
|
||||
if (tryType != null) {
|
||||
final PsiType exprType = labeler.getTypeEvaluator().evaluateType(
|
||||
JavaPsiFacade.getElementFactory(threadLocalClass.getProject()).createExpressionFromText(tryType, context));
|
||||
|
||||
+2
-2
@@ -46,7 +46,7 @@ public abstract class BaseGuavaTypeConversionRule extends TypeConversionRule {
|
||||
}
|
||||
};
|
||||
|
||||
protected void fillSimpleDescriptors(Map<String, TypeConversionDescriptorBase> descriptorsMap) {};
|
||||
protected void fillSimpleDescriptors(Map<String, TypeConversionDescriptorBase> descriptorsMap) {}
|
||||
|
||||
@Nullable
|
||||
protected TypeConversionDescriptorBase findConversionForMethod(PsiType from,
|
||||
@@ -56,7 +56,7 @@ public abstract class BaseGuavaTypeConversionRule extends TypeConversionRule {
|
||||
PsiExpression context,
|
||||
TypeMigrationLabeler labeler) {
|
||||
return null;
|
||||
};
|
||||
}
|
||||
|
||||
@Nullable
|
||||
protected TypeConversionDescriptorBase findConversionForVariableReference(@NotNull PsiReferenceExpression referenceExpression,
|
||||
|
||||
+5
-5
@@ -76,7 +76,7 @@ public class FluentIterableConversionUtil {
|
||||
PsiType myType = parameters[0];
|
||||
|
||||
@Override
|
||||
public PsiExpression replace(PsiExpression expression, TypeEvaluator evaluator) throws IncorrectOperationException {
|
||||
public PsiExpression replace(PsiExpression expression, @NotNull TypeEvaluator evaluator) throws IncorrectOperationException {
|
||||
if (!JavaGenericsUtil.isReifiableType(myType)) {
|
||||
final String chosenName = chooseName(expression, PsiType.INT);
|
||||
final PsiType arrayType;
|
||||
@@ -137,7 +137,7 @@ public class FluentIterableConversionUtil {
|
||||
}
|
||||
|
||||
@Override
|
||||
public PsiExpression replace(PsiExpression expression, TypeEvaluator typeEvaluator) {
|
||||
public PsiExpression replace(PsiExpression expression, @NotNull TypeEvaluator typeEvaluator) {
|
||||
PsiExpression argument = ((PsiMethodCallExpression)expression).getArgumentList().getExpressions()[0];
|
||||
|
||||
PsiAnonymousClass anonymousClass;
|
||||
@@ -235,7 +235,7 @@ public class FluentIterableConversionUtil {
|
||||
}
|
||||
|
||||
@Override
|
||||
public PsiExpression replace(PsiExpression expression, TypeEvaluator evaluator) {
|
||||
public PsiExpression replace(PsiExpression expression, @NotNull TypeEvaluator evaluator) {
|
||||
final PsiExpression argument = ((PsiMethodCallExpression)expression).getArgumentList().getExpressions()[0];
|
||||
final PsiExpression newArgument = JavaPsiFacade.getElementFactory(expression.getProject()).createExpressionFromText("(" + argument.getText() + ")::isInstance", argument);
|
||||
ParenthesesUtils.removeParentheses((PsiExpression)((PsiMethodReferenceExpression)newArgument).getQualifier(), false);
|
||||
@@ -286,7 +286,7 @@ public class FluentIterableConversionUtil {
|
||||
}
|
||||
|
||||
@Override
|
||||
public PsiExpression replace(PsiExpression expression, TypeEvaluator evaluator) {
|
||||
public PsiExpression replace(PsiExpression expression, @NotNull TypeEvaluator evaluator) {
|
||||
final JavaPsiFacade facade = JavaPsiFacade.getInstance(expression.getProject());
|
||||
final PsiClass javaUtilCollection = facade.findClass(CommonClassNames.JAVA_UTIL_COLLECTION, expression.getResolveScope());
|
||||
LOG.assertTrue(javaUtilCollection != null);
|
||||
@@ -307,7 +307,7 @@ public class FluentIterableConversionUtil {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private PsiType getQualifierElementType(PsiMethodCallExpression expression) {
|
||||
private static PsiType getQualifierElementType(PsiMethodCallExpression expression) {
|
||||
final PsiExpression qualifier = expression.getMethodExpression().getQualifierExpression();
|
||||
if (qualifier == null) return null;
|
||||
final PsiType type = qualifier.getType();
|
||||
|
||||
+1
-1
@@ -40,7 +40,7 @@ public class FunctionalInterfaceTypeConversionDescriptor extends TypeConversionD
|
||||
}
|
||||
|
||||
@Override
|
||||
public PsiExpression replace(PsiExpression expression, TypeEvaluator evaluator) {
|
||||
public PsiExpression replace(PsiExpression expression, @NotNull TypeEvaluator evaluator) {
|
||||
if (expression.getParent() instanceof PsiMethodReferenceExpression) {
|
||||
expression = (PsiExpression)expression.getParent();
|
||||
}
|
||||
|
||||
+7
-7
@@ -142,7 +142,7 @@ public class GuavaFluentIterableConversionRule extends BaseGuavaTypeConversionRu
|
||||
} else if (methodName.equals("from")) {
|
||||
descriptorBase = new TypeConversionDescriptor("'FluentIterable*.from($it$)", null) {
|
||||
@Override
|
||||
public PsiExpression replace(PsiExpression expression, TypeEvaluator evaluator) {
|
||||
public PsiExpression replace(PsiExpression expression, @NotNull TypeEvaluator evaluator) {
|
||||
final PsiMethodCallExpression methodCall = (PsiMethodCallExpression)expression;
|
||||
PsiExpression argument =
|
||||
PseudoLambdaReplaceTemplate.replaceTypeParameters(methodCall.getArgumentList().getExpressions()[0]);
|
||||
@@ -162,7 +162,7 @@ public class GuavaFluentIterableConversionRule extends BaseGuavaTypeConversionRu
|
||||
} else if (methodName.equals("isEmpty")) {
|
||||
descriptorBase = new TypeConversionDescriptor("$q$.isEmpty()", null) {
|
||||
@Override
|
||||
public PsiExpression replace(PsiExpression expression, TypeEvaluator evaluator) {
|
||||
public PsiExpression replace(PsiExpression expression, @NotNull TypeEvaluator evaluator) {
|
||||
final PsiElement parent = expression.getParent();
|
||||
boolean isDoubleNegation = false;
|
||||
if (parent instanceof PsiExpression && DoubleNegationInspection.isNegation((PsiExpression)parent)) {
|
||||
@@ -191,7 +191,7 @@ public class GuavaFluentIterableConversionRule extends BaseGuavaTypeConversionRu
|
||||
else if (methodName.equals("get")) {
|
||||
descriptorBase = new TypeConversionDescriptor("$it$.get($p$)", null) {
|
||||
@Override
|
||||
public PsiExpression replace(PsiExpression expression, TypeEvaluator evaluator) {
|
||||
public PsiExpression replace(PsiExpression expression, @NotNull TypeEvaluator evaluator) {
|
||||
PsiMethodCallExpression methodCall = (PsiMethodCallExpression)expression;
|
||||
final PsiExpression[] arguments = methodCall.getArgumentList().getExpressions();
|
||||
setReplaceByString("$it$.skip($p$).findFirst().get()");
|
||||
@@ -209,7 +209,7 @@ public class GuavaFluentIterableConversionRule extends BaseGuavaTypeConversionRu
|
||||
else if (methodName.equals("contains")) {
|
||||
descriptorBase = new TypeConversionDescriptor("$it$.contains($o$)", null) {
|
||||
@Override
|
||||
public PsiExpression replace(PsiExpression expression, TypeEvaluator evaluator) {
|
||||
public PsiExpression replace(PsiExpression expression, @NotNull TypeEvaluator evaluator) {
|
||||
final PsiMethodCallExpression methodCallExpression = (PsiMethodCallExpression)expression;
|
||||
final PsiExpression qualifier = methodCallExpression.getMethodExpression().getQualifierExpression();
|
||||
LOG.assertTrue(qualifier != null);
|
||||
@@ -232,7 +232,7 @@ public class GuavaFluentIterableConversionRule extends BaseGuavaTypeConversionRu
|
||||
else if (methodName.equals("last")) {
|
||||
descriptorBase = new TypeConversionDescriptor("$it$.last()", null) {
|
||||
@Override
|
||||
public PsiExpression replace(PsiExpression expression, TypeEvaluator evaluator) {
|
||||
public PsiExpression replace(PsiExpression expression, @NotNull TypeEvaluator evaluator) {
|
||||
final JavaCodeStyleManager codeStyleManager = JavaCodeStyleManager.getInstance(expression.getProject());
|
||||
String varA = suggestName("a", codeStyleManager, expression);
|
||||
String varB = suggestName("b", codeStyleManager, expression);
|
||||
@@ -373,7 +373,7 @@ public class GuavaFluentIterableConversionRule extends BaseGuavaTypeConversionRu
|
||||
private static void addToMigrateChainQualifier(TypeMigrationLabeler labeler, PsiExpression qualifier) {
|
||||
final PsiClass qClass = PsiTypesUtil.getPsiClass(qualifier.getType());
|
||||
final boolean isFluentIterable;
|
||||
if (qClass != null && ((isFluentIterable = GuavaFluentIterableConversionRule.FLUENT_ITERABLE.equals(qClass.getQualifiedName())) ||
|
||||
if (qClass != null && ((isFluentIterable = FLUENT_ITERABLE.equals(qClass.getQualifiedName())) ||
|
||||
GuavaOptionalConversionRule.GUAVA_OPTIONAL.equals(qClass.getQualifiedName()))) {
|
||||
labeler.migrateExpressionType(qualifier,
|
||||
GuavaConversionUtil.addTypeParameters(isFluentIterable ? StreamApiConstants.JAVA_UTIL_STREAM_STREAM :
|
||||
@@ -395,7 +395,7 @@ public class GuavaFluentIterableConversionRule extends BaseGuavaTypeConversionRu
|
||||
}
|
||||
|
||||
@Override
|
||||
public PsiExpression replace(@NotNull PsiExpression expression, TypeEvaluator evaluator) throws IncorrectOperationException {
|
||||
public PsiExpression replace(@NotNull PsiExpression expression, @NotNull TypeEvaluator evaluator) throws IncorrectOperationException {
|
||||
Stack<PsiMethodCallExpression> methodChainStack = new Stack<>();
|
||||
PsiMethodCallExpression current = (PsiMethodCallExpression) expression;
|
||||
while (current != null) {
|
||||
|
||||
+3
-3
@@ -61,7 +61,7 @@ public class GuavaOptionalConversionRule extends BaseGuavaTypeConversionRule {
|
||||
TypeConversionDescriptor descriptor =
|
||||
new TypeConversionDescriptor(null, "java.util.Optional.ofNullable($val$.orElseGet($o$::get))") {
|
||||
@Override
|
||||
public PsiExpression replace(PsiExpression expression, TypeEvaluator evaluator) {
|
||||
public PsiExpression replace(PsiExpression expression, @NotNull TypeEvaluator evaluator) {
|
||||
setStringToReplace("$val$.or(" +
|
||||
GuavaOptionalConversionUtil.simplifyParameterPattern((PsiMethodCallExpression)expression)
|
||||
+ ")");
|
||||
@@ -121,7 +121,7 @@ public class GuavaOptionalConversionRule extends BaseGuavaTypeConversionRule {
|
||||
return new TypeConversionDescriptor("$o$", "$o$::get");
|
||||
}
|
||||
|
||||
private PsiClass getParameterClass(PsiMethod method) {
|
||||
private static PsiClass getParameterClass(PsiMethod method) {
|
||||
final PsiParameter[] parameters = method.getParameterList().getParameters();
|
||||
if (parameters.length != 1) {
|
||||
return null;
|
||||
@@ -133,7 +133,7 @@ public class GuavaOptionalConversionRule extends BaseGuavaTypeConversionRule {
|
||||
protected void fillSimpleDescriptors(Map<String, TypeConversionDescriptorBase> descriptorsMap) {
|
||||
descriptorsMap.put("absent", new TypeConversionDescriptor("'Optional*.absent()", "java.util.Optional.empty()") {
|
||||
@Override
|
||||
public PsiExpression replace(PsiExpression expression, TypeEvaluator evaluator) {
|
||||
public PsiExpression replace(PsiExpression expression, @NotNull TypeEvaluator evaluator) {
|
||||
LOG.assertTrue(expression instanceof PsiMethodCallExpression);
|
||||
|
||||
final PsiReferenceParameterList typeArguments = ((PsiMethodCallExpression)expression).getTypeArgumentList();
|
||||
|
||||
-3
@@ -17,12 +17,9 @@ package com.intellij.refactoring.typeMigration.rules.guava;
|
||||
|
||||
import com.intellij.openapi.fileTypes.StdFileTypes;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.util.PsiMatcherExpression;
|
||||
import com.intellij.refactoring.typeMigration.TypeConversionDescriptor;
|
||||
import com.intellij.structuralsearch.MatchOptions;
|
||||
import com.intellij.structuralsearch.MatchResult;
|
||||
import com.intellij.structuralsearch.Matcher;
|
||||
import com.intellij.structuralsearch.plugin.replace.impl.Replacer;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
+1
-2
@@ -24,7 +24,6 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
@@ -63,7 +62,7 @@ public class GuavaPredicateConversionRule extends GuavaLambdaConversionRule {
|
||||
}
|
||||
return new TypeConversionDescriptorBase() {
|
||||
@Override
|
||||
public PsiExpression replace(PsiExpression expression, TypeEvaluator evaluator) throws IncorrectOperationException {
|
||||
public PsiExpression replace(PsiExpression expression, @NotNull TypeEvaluator evaluator) throws IncorrectOperationException {
|
||||
return (PsiExpression)expression.replace(JavaPsiFacade.getElementFactory(expression.getProject()).createExpressionFromText(expression.getText() + "::apply", expression));
|
||||
}
|
||||
};
|
||||
|
||||
+2
-2
@@ -69,7 +69,7 @@ public class GuavaPredicatesUtil {
|
||||
|
||||
@NotNull
|
||||
private static TypeConversionDescriptorWithLocalVariable createConstantPredicate(String methodName, boolean value) {
|
||||
return new TypeConversionDescriptorWithLocalVariable(methodName, "$x$ -> " + value + "");
|
||||
return new TypeConversionDescriptorWithLocalVariable(methodName, "$x$ -> " + value);
|
||||
}
|
||||
|
||||
private static class TypeConversionDescriptorWithLocalVariable extends TypeConversionDescriptor {
|
||||
@@ -81,7 +81,7 @@ public class GuavaPredicatesUtil {
|
||||
}
|
||||
|
||||
@Override
|
||||
public PsiExpression replace(PsiExpression expression, TypeEvaluator evaluator) {
|
||||
public PsiExpression replace(PsiExpression expression, @NotNull TypeEvaluator evaluator) {
|
||||
final String chosenName = FluentIterableConversionUtil.chooseName(expression, getIntroducedVariableType(expression));
|
||||
setReplaceByString(StringUtil.replace(myReplaceByStringTemplate, "$x$", chosenName));
|
||||
return super.replace(expression, evaluator);
|
||||
|
||||
+2
-1
@@ -24,6 +24,7 @@ import com.intellij.refactoring.typeMigration.TypeEvaluator;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
@@ -45,7 +46,7 @@ public class GuavaTypeConversionDescriptor extends TypeConversionDescriptor {
|
||||
}
|
||||
|
||||
@Override
|
||||
public PsiExpression replace(PsiExpression expression, TypeEvaluator evaluator) throws IncorrectOperationException {
|
||||
public PsiExpression replace(PsiExpression expression, @NotNull TypeEvaluator evaluator) throws IncorrectOperationException {
|
||||
setReplaceByString(myReplaceByStringSource + (isIterable(expression) ? ".collect(java.util.stream.Collectors.toList())" : ""));
|
||||
if (myConvertParameterAsLambda) {
|
||||
LOG.assertTrue(expression instanceof PsiMethodCallExpression);
|
||||
|
||||
-2
@@ -17,8 +17,6 @@ package com.intellij.refactoring.typeMigration.rules.guava;
|
||||
|
||||
import com.intellij.codeInspection.java18StreamApi.StreamApiConstants;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.util.PsiTypesUtil;
|
||||
import com.intellij.refactoring.typeMigration.TypeConversionDescriptor;
|
||||
import com.intellij.refactoring.typeMigration.TypeConversionDescriptorBase;
|
||||
import com.intellij.refactoring.typeMigration.TypeMigrationLabeler;
|
||||
import com.intellij.refactoring.typeMigration.rules.TypeConversionRule;
|
||||
|
||||
Reference in New Issue
Block a user