From 66402ebb256cc9725d1002685f6737893c45a59d Mon Sep 17 00:00:00 2001 From: Dmitry Batkovich Date: Mon, 17 Oct 2016 21:54:50 +0300 Subject: [PATCH] type migration: cleanup (warnings) --- .../TypeConversionDescriptor.java | 2 +- .../inspections/GuavaInspection.java | 5 ++- .../ConvertFieldToThreadLocalIntention.java | 9 +++--- .../rules/AtomicConversionRule.java | 2 +- .../rules/ListArrayConversionRule.java | 32 +++++++++---------- .../rules/LongAdderConversionRule.java | 5 +-- .../rules/ThreadLocalConversionRule.java | 2 -- .../guava/BaseGuavaTypeConversionRule.java | 4 +-- .../guava/FluentIterableConversionUtil.java | 10 +++--- ...onalInterfaceTypeConversionDescriptor.java | 2 +- .../GuavaFluentIterableConversionRule.java | 14 ++++---- .../guava/GuavaOptionalConversionRule.java | 6 ++-- .../guava/GuavaOptionalConversionUtil.java | 3 -- .../guava/GuavaPredicateConversionRule.java | 3 +- .../rules/guava/GuavaPredicatesUtil.java | 4 +-- .../guava/GuavaTypeConversionDescriptor.java | 3 +- .../guava/IterableStreamConversionRule.java | 2 -- 17 files changed, 49 insertions(+), 59 deletions(-) diff --git a/java/typeMigration/src/com/intellij/refactoring/typeMigration/TypeConversionDescriptor.java b/java/typeMigration/src/com/intellij/refactoring/typeMigration/TypeConversionDescriptor.java index e3cccfc6d3df..0bb2573a3fda 100644 --- a/java/typeMigration/src/com/intellij/refactoring/typeMigration/TypeConversionDescriptor.java +++ b/java/typeMigration/src/com/intellij/refactoring/typeMigration/TypeConversionDescriptor.java @@ -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()); } diff --git a/java/typeMigration/src/com/intellij/refactoring/typeMigration/inspections/GuavaInspection.java b/java/typeMigration/src/com/intellij/refactoring/typeMigration/inspections/GuavaInspection.java index 5ad66445578d..9a312342d794 100644 --- a/java/typeMigration/src/com/intellij/refactoring/typeMigration/inspections/GuavaInspection.java +++ b/java/typeMigration/src/com/intellij/refactoring/typeMigration/inspections/GuavaInspection.java @@ -348,7 +348,7 @@ public class GuavaInspection extends BaseJavaLocalInspectionTool { throw new AssertionError(); } - private boolean performTypeMigration(List elements, List types) { + private void performTypeMigration(List elements, List 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 createMigrationTypeFunction(@NotNull final List elements, diff --git a/java/typeMigration/src/com/intellij/refactoring/typeMigration/intentions/ConvertFieldToThreadLocalIntention.java b/java/typeMigration/src/com/intellij/refactoring/typeMigration/intentions/ConvertFieldToThreadLocalIntention.java index 48b431ce0151..1c481c773247 100644 --- a/java/typeMigration/src/com/intellij/refactoring/typeMigration/intentions/ConvertFieldToThreadLocalIntention.java +++ b/java/typeMigration/src/com/intellij/refactoring/typeMigration/intentions/ConvertFieldToThreadLocalIntention.java @@ -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 diff --git a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/AtomicConversionRule.java b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/AtomicConversionRule.java index c25eac5ac0e0..2f1578e47894 100644 --- a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/AtomicConversionRule.java +++ b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/AtomicConversionRule.java @@ -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) { diff --git a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/ListArrayConversionRule.java b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/ListArrayConversionRule.java index 0aa639ba28cb..b5990ade9764 100644 --- a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/ListArrayConversionRule.java +++ b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/ListArrayConversionRule.java @@ -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; diff --git a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/LongAdderConversionRule.java b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/LongAdderConversionRule.java index f916ad3707c6..043f21a1d061 100644 --- a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/LongAdderConversionRule.java +++ b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/LongAdderConversionRule.java @@ -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; diff --git a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/ThreadLocalConversionRule.java b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/ThreadLocalConversionRule.java index 2fb305147d02..d0498ac3c572 100644 --- a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/ThreadLocalConversionRule.java +++ b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/ThreadLocalConversionRule.java @@ -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)); diff --git a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/BaseGuavaTypeConversionRule.java b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/BaseGuavaTypeConversionRule.java index d4e89c7aedad..c87da269ba11 100644 --- a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/BaseGuavaTypeConversionRule.java +++ b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/BaseGuavaTypeConversionRule.java @@ -46,7 +46,7 @@ public abstract class BaseGuavaTypeConversionRule extends TypeConversionRule { } }; - protected void fillSimpleDescriptors(Map descriptorsMap) {}; + protected void fillSimpleDescriptors(Map 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, diff --git a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/FluentIterableConversionUtil.java b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/FluentIterableConversionUtil.java index faa12f51499b..fcf76f30c496 100644 --- a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/FluentIterableConversionUtil.java +++ b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/FluentIterableConversionUtil.java @@ -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(); diff --git a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/FunctionalInterfaceTypeConversionDescriptor.java b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/FunctionalInterfaceTypeConversionDescriptor.java index 1ebc049bfd95..95ceba66074c 100644 --- a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/FunctionalInterfaceTypeConversionDescriptor.java +++ b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/FunctionalInterfaceTypeConversionDescriptor.java @@ -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(); } diff --git a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/GuavaFluentIterableConversionRule.java b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/GuavaFluentIterableConversionRule.java index 66ce973e1bb9..8bb129493d46 100644 --- a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/GuavaFluentIterableConversionRule.java +++ b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/GuavaFluentIterableConversionRule.java @@ -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 methodChainStack = new Stack<>(); PsiMethodCallExpression current = (PsiMethodCallExpression) expression; while (current != null) { diff --git a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/GuavaOptionalConversionRule.java b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/GuavaOptionalConversionRule.java index 23cb786295a0..12e80cfc2995 100644 --- a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/GuavaOptionalConversionRule.java +++ b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/GuavaOptionalConversionRule.java @@ -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 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(); diff --git a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/GuavaOptionalConversionUtil.java b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/GuavaOptionalConversionUtil.java index 828e58b2402c..72492bf07fae 100644 --- a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/GuavaOptionalConversionUtil.java +++ b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/GuavaOptionalConversionUtil.java @@ -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; diff --git a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/GuavaPredicateConversionRule.java b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/GuavaPredicateConversionRule.java index 32b434d04e7d..b44e986c2bd9 100644 --- a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/GuavaPredicateConversionRule.java +++ b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/GuavaPredicateConversionRule.java @@ -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)); } }; diff --git a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/GuavaPredicatesUtil.java b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/GuavaPredicatesUtil.java index d6c034224090..633bc26550e0 100644 --- a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/GuavaPredicatesUtil.java +++ b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/GuavaPredicatesUtil.java @@ -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); diff --git a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/GuavaTypeConversionDescriptor.java b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/GuavaTypeConversionDescriptor.java index be71b3178b12..1be36aa6d447 100644 --- a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/GuavaTypeConversionDescriptor.java +++ b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/GuavaTypeConversionDescriptor.java @@ -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); diff --git a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/IterableStreamConversionRule.java b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/IterableStreamConversionRule.java index 0dd4b2bbdd0e..c87402aa14ac 100644 --- a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/IterableStreamConversionRule.java +++ b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/guava/IterableStreamConversionRule.java @@ -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;