From c770886a923349ba404427d5705da38047e55c57 Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Thu, 15 Dec 2016 14:15:02 +0700 Subject: [PATCH] PsiUtil#isIncrementDecrementOperation: loosen argument contract to nullable; RefactoringUtil#isPlusPlusOrMinusMinus is replaced everywhere with PsiUtil#isIncrementDecrementOperation (IDEA-CR-16815) --- .../encapsulateFields/EncapsulateFieldsProcessor.java | 4 ++-- .../encapsulateFields/JavaEncapsulateFieldHelper.java | 7 ++----- .../refactoring/extractclass/ExtractClassProcessor.java | 4 ++-- .../src/com/intellij/refactoring/util/RefactoringUtil.java | 7 +------ java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java | 3 ++- 5 files changed, 9 insertions(+), 16 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/encapsulateFields/EncapsulateFieldsProcessor.java b/java/java-impl/src/com/intellij/refactoring/encapsulateFields/EncapsulateFieldsProcessor.java index a1d4f7323455..1804d5f2f9cd 100644 --- a/java/java-impl/src/com/intellij/refactoring/encapsulateFields/EncapsulateFieldsProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/encapsulateFields/EncapsulateFieldsProcessor.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2015 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -173,7 +173,7 @@ public class EncapsulateFieldsProcessor extends BaseRefactoringProcessor { PsiElement element = info.getElement(); if (element != null) { PsiElement parent = element.getParent(); - if (RefactoringUtil.isPlusPlusOrMinusMinus(parent) && !(parent.getParent() instanceof PsiExpressionStatement)) { + if (PsiUtil.isIncrementDecrementOperation(parent) && !(parent.getParent() instanceof PsiExpressionStatement)) { conflicts.putValue(parent, "Unable to proceed with postfix/prefix expression when it's result type is used"); } } diff --git a/java/java-impl/src/com/intellij/refactoring/encapsulateFields/JavaEncapsulateFieldHelper.java b/java/java-impl/src/com/intellij/refactoring/encapsulateFields/JavaEncapsulateFieldHelper.java index 25c9c0ea1278..06aa52cab4b2 100644 --- a/java/java-impl/src/com/intellij/refactoring/encapsulateFields/JavaEncapsulateFieldHelper.java +++ b/java/java-impl/src/com/intellij/refactoring/encapsulateFields/JavaEncapsulateFieldHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2013 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,13 +17,10 @@ package com.intellij.refactoring.encapsulateFields; import com.intellij.codeInsight.generation.GenerateMembersUtil; import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.*; import com.intellij.psi.tree.IElementType; -import com.intellij.psi.util.PropertyUtil; import com.intellij.psi.util.PsiUtil; -import com.intellij.refactoring.util.RefactoringUtil; import com.intellij.util.IncorrectOperationException; import com.intellij.util.VisibilityUtil; import com.intellij.util.containers.ContainerUtil; @@ -180,7 +177,7 @@ public class JavaEncapsulateFieldHelper extends EncapsulateFieldHelper { } } } - else if (RefactoringUtil.isPlusPlusOrMinusMinus(parent)){ + else if (PsiUtil.isIncrementDecrementOperation(parent)){ IElementType sign; if (parent instanceof PsiPrefixExpression){ sign = ((PsiPrefixExpression)parent).getOperationTokenType(); diff --git a/java/java-impl/src/com/intellij/refactoring/extractclass/ExtractClassProcessor.java b/java/java-impl/src/com/intellij/refactoring/extractclass/ExtractClassProcessor.java index c3570eec6605..3221ef5a5a8b 100644 --- a/java/java-impl/src/com/intellij/refactoring/extractclass/ExtractClassProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/extractclass/ExtractClassProcessor.java @@ -25,7 +25,6 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleUtil; import com.intellij.openapi.project.Project; -import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.Ref; import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.*; @@ -40,6 +39,7 @@ import com.intellij.psi.tree.IElementType; import com.intellij.psi.util.InheritanceUtil; import com.intellij.psi.util.PropertyUtil; import com.intellij.psi.util.PsiTreeUtil; +import com.intellij.psi.util.PsiUtil; import com.intellij.refactoring.MoveDestination; import com.intellij.refactoring.RefactorJBundle; import com.intellij.refactoring.extractclass.usageInfo.*; @@ -630,7 +630,7 @@ public class ExtractClassProcessor extends FixableUsagesRefactoringProcessor { if (element instanceof PsiReferenceExpression) { final PsiReferenceExpression exp = (PsiReferenceExpression)element; - if (RefactoringUtil.isPlusPlusOrMinusMinus(exp.getParent())) { + if (PsiUtil.isIncrementDecrementOperation(exp.getParent())) { usages.add(isStatic ? new ReplaceStaticVariableIncrementDecrement(exp, qualifiedName) : new ReplaceInstanceVariableIncrementDecrement(exp, delegateFieldName, setter, getter, field.getName())); diff --git a/java/java-impl/src/com/intellij/refactoring/util/RefactoringUtil.java b/java/java-impl/src/com/intellij/refactoring/util/RefactoringUtil.java index 339d4c6dfa34..34cc63ce8ceb 100644 --- a/java/java-impl/src/com/intellij/refactoring/util/RefactoringUtil.java +++ b/java/java-impl/src/com/intellij/refactoring/util/RefactoringUtil.java @@ -424,11 +424,6 @@ public class RefactoringUtil { return element instanceof PsiExpression && PsiUtil.isAccessedForWriting((PsiExpression)element); } - @Contract("null -> false") - public static boolean isPlusPlusOrMinusMinus(PsiElement element) { - return PsiUtil.isIncrementDecrementOperation(element); - } - private static void removeFinalParameters(PsiMethod method) throws IncorrectOperationException { PsiParameterList paramList = method.getParameterList(); PsiParameter[] params = paramList.getParameters(); @@ -633,7 +628,7 @@ public class RefactoringUtil { return EXPR_COPY_PROHIBITED; } - if (isPlusPlusOrMinusMinus(element)) { + if (PsiUtil.isIncrementDecrementOperation(element)) { return EXPR_COPY_PROHIBITED; } diff --git a/java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java b/java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java index 7ec4c766b739..d16641d1459b 100644 --- a/java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java +++ b/java/java-psi-api/src/com/intellij/psi/util/PsiUtil.java @@ -330,7 +330,8 @@ public final class PsiUtil extends PsiUtilCore { return codeBlock; } - public static boolean isIncrementDecrementOperation(@NotNull PsiElement element) { + @Contract("null -> false") + public static boolean isIncrementDecrementOperation(@Nullable PsiElement element) { if (element instanceof PsiPostfixExpression) { final IElementType sign = ((PsiPostfixExpression)element).getOperationTokenType(); if (sign == JavaTokenType.PLUSPLUS || sign == JavaTokenType.MINUSMINUS)