From 91adf9aa448cea57ae32536674340da439c7abcb Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Tue, 25 Nov 2025 15:44:17 +0100 Subject: [PATCH] cleanup: notnull GitOrigin-RevId: 02bd3ed060b5ab3fdc83878ce170b197ce5e68d2 --- .../DirectoryAsPackageRenameHandler.java | 2 +- .../refactoring/util/MoveRenameUsageInfo.java | 37 ++++++++++--------- .../refactoring/util/NonCodeUsageInfo.java | 12 ++++-- .../rename/NonCodeUsageInfoFactory.java | 8 ++-- .../DirectoryAsPackageRenameHandlerBase.java | 2 +- .../refactoring/rename/RenameProcessor.java | 21 ++++++----- .../rename/RenameViewDescriptor.java | 3 +- .../refactoring/rename/RenameUtil.java | 32 ++++++++-------- 8 files changed, 60 insertions(+), 57 deletions(-) diff --git a/java/java-impl-refactorings/src/com/intellij/refactoring/rename/DirectoryAsPackageRenameHandler.java b/java/java-impl-refactorings/src/com/intellij/refactoring/rename/DirectoryAsPackageRenameHandler.java index 3f240c0b3ef5..df3396cc6d31 100644 --- a/java/java-impl-refactorings/src/com/intellij/refactoring/rename/DirectoryAsPackageRenameHandler.java +++ b/java/java-impl-refactorings/src/com/intellij/refactoring/rename/DirectoryAsPackageRenameHandler.java @@ -27,7 +27,7 @@ public class DirectoryAsPackageRenameHandler extends DirectoryAsPackageRenameHan } @Override - protected String getQualifiedName(PsiPackage aPackage) { + protected @NotNull String getQualifiedName(PsiPackage aPackage) { return aPackage.getQualifiedName(); } diff --git a/platform/analysis-api/src/com/intellij/refactoring/util/MoveRenameUsageInfo.java b/platform/analysis-api/src/com/intellij/refactoring/util/MoveRenameUsageInfo.java index 0db74df81ce3..3e83e931146e 100644 --- a/platform/analysis-api/src/com/intellij/refactoring/util/MoveRenameUsageInfo.java +++ b/platform/analysis-api/src/com/intellij/refactoring/util/MoveRenameUsageInfo.java @@ -21,31 +21,32 @@ public class MoveRenameUsageInfo extends UsageInfo implements Cloneable { private PsiReference myReference; private RangeMarker myReferenceRangeMarker; - public MoveRenameUsageInfo(PsiReference reference, PsiElement referencedElement){ + public MoveRenameUsageInfo(@NotNull PsiReference reference, PsiElement referencedElement){ this(reference.getElement(), reference, referencedElement); } - public MoveRenameUsageInfo(PsiElement element, PsiReference reference, PsiElement referencedElement){ + public MoveRenameUsageInfo(@NotNull PsiElement element, PsiReference reference, PsiElement referencedElement){ super(element); init(element, reference, referencedElement); - } - public MoveRenameUsageInfo(PsiElement element, PsiReference reference, int startOffset, int endOffset, PsiElement referencedElement, boolean nonCodeUsage){ + public MoveRenameUsageInfo(@NotNull PsiElement element, PsiReference reference, int startOffset, int endOffset, PsiElement referencedElement, boolean nonCodeUsage){ super(element, startOffset, endOffset, nonCodeUsage); init(element, reference, referencedElement); } - private void init(final PsiElement element, PsiReference reference, final PsiElement referencedElement) { - final Project project = element.getProject(); + private void init(@NotNull PsiElement element, @Nullable PsiReference reference, @Nullable PsiElement referencedElement) { + Project project = element.getProject(); myReferencedElement = referencedElement; if (referencedElement != null) { myReferencedElementPointer = SmartPointerManager.getInstance(referencedElement.getProject()).createSmartPsiElementPointer(referencedElement); } - if (reference == null) reference = element.getReference(); + if (reference == null) { + reference = element.getReference(); + } PsiFile containingFile = element.getContainingFile(); if (reference == null) { - final TextRange textRange = element.getTextRange(); + TextRange textRange = element.getTextRange(); if (textRange != null) { reference = containingFile.findReferenceAt(textRange.getStartOffset()); } @@ -54,8 +55,8 @@ public class MoveRenameUsageInfo extends UsageInfo implements Cloneable { if (reference != null) { Document document = PsiDocumentManager.getInstance(project).getDocument(containingFile); if (document != null) { - final int elementStart = reference.getElement().getTextRange().getStartOffset(); - final TextRange rangeInElement = reference.getRangeInElement(); + int elementStart = reference.getElement().getTextRange().getStartOffset(); + TextRange rangeInElement = reference.getRangeInElement(); LOG.assertTrue(elementStart + rangeInElement.getEndOffset() <= document.getTextLength(), reference); myReferenceRangeMarker = document.createRangeMarker(elementStart + rangeInElement.getStartOffset(), elementStart + rangeInElement.getEndOffset()); @@ -75,13 +76,13 @@ public class MoveRenameUsageInfo extends UsageInfo implements Cloneable { @Override public @Nullable PsiReference getReference() { if (myReference != null) { - final PsiElement element = myReference.getElement(); + PsiElement element = myReference.getElement(); if (element.isValid()) { if (myReferenceRangeMarker == null) { return myReference; } - final PsiReference reference = checkReferenceRange(element, start -> myReference); + PsiReference reference = checkReferenceRange(element, start -> myReference); if (reference != null) { return reference; @@ -90,7 +91,7 @@ public class MoveRenameUsageInfo extends UsageInfo implements Cloneable { } if (myReferenceRangeMarker == null) return null; - final PsiElement element = getElement(); + PsiElement element = getElement(); if (element == null || !element.isValid()) { return null; } @@ -108,15 +109,15 @@ public class MoveRenameUsageInfo extends UsageInfo implements Cloneable { return myReferenceRangeMarker; } - private @Nullable PsiReference checkReferenceRange(PsiElement element, Function fn) { + private @Nullable PsiReference checkReferenceRange(@NotNull PsiElement element, @NotNull Function fn) { var rangeToCheck = getReferenceRangeToCheck(element); - final int start = rangeToCheck.getStartOffset() - element.getTextRange().getStartOffset(); - final int end = rangeToCheck.getEndOffset() - element.getTextRange().getStartOffset(); - final PsiReference reference = fn.fun(start); + int start = rangeToCheck.getStartOffset() - element.getTextRange().getStartOffset(); + int end = rangeToCheck.getEndOffset() - element.getTextRange().getStartOffset(); + PsiReference reference = fn.fun(start); if (reference == null) { return null; } - final TextRange rangeInElement = reference.getRangeInElement(); + TextRange rangeInElement = reference.getRangeInElement(); if (rangeInElement.getStartOffset() != start || rangeInElement.getEndOffset() != end) { return null; } diff --git a/platform/analysis-api/src/com/intellij/refactoring/util/NonCodeUsageInfo.java b/platform/analysis-api/src/com/intellij/refactoring/util/NonCodeUsageInfo.java index c291dd506283..ebf51d87332e 100644 --- a/platform/analysis-api/src/com/intellij/refactoring/util/NonCodeUsageInfo.java +++ b/platform/analysis-api/src/com/intellij/refactoring/util/NonCodeUsageInfo.java @@ -1,10 +1,12 @@ // Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.refactoring.util; +import com.intellij.openapi.util.ProperTextRange; import com.intellij.openapi.util.TextRange; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.psi.PsiReference; +import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -16,12 +18,12 @@ public final class NonCodeUsageInfo extends MoveRenameUsageInfo{ this.newText = newText; } - public static @Nullable NonCodeUsageInfo create(@NotNull PsiFile file, + public static @Nullable NonCodeUsageInfo create(@NotNull PsiFile psiFile, int startOffset, int endOffset, PsiElement referencedElement, String newText) { - PsiElement element = file.findElementAt(startOffset); + PsiElement element = psiFile.findElementAt(startOffset); while(element != null){ TextRange range = element.getTextRange(); if (range.getEndOffset() < endOffset){ @@ -45,7 +47,9 @@ public final class NonCodeUsageInfo extends MoveRenameUsageInfo{ return null; } - public NonCodeUsageInfo replaceElement(PsiElement newElement) { - return new NonCodeUsageInfo(newElement, getRangeInElement().getStartOffset(), getRangeInElement().getEndOffset(), getReferencedElement(), newText); + @Contract("_ -> new") + public @NotNull NonCodeUsageInfo replaceElement(@NotNull PsiElement newElement) { + ProperTextRange rangeInElement = getRangeInElement(); + return new NonCodeUsageInfo(newElement, rangeInElement.getStartOffset(), rangeInElement.getEndOffset(), getReferencedElement(), newText); } } diff --git a/platform/analysis-impl/src/com/intellij/refactoring/rename/NonCodeUsageInfoFactory.java b/platform/analysis-impl/src/com/intellij/refactoring/rename/NonCodeUsageInfoFactory.java index f6bbec91601e..60cb5034bd9b 100644 --- a/platform/analysis-impl/src/com/intellij/refactoring/rename/NonCodeUsageInfoFactory.java +++ b/platform/analysis-impl/src/com/intellij/refactoring/rename/NonCodeUsageInfoFactory.java @@ -11,11 +11,11 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public class NonCodeUsageInfoFactory implements UsageInfoFactory { - private final PsiElement myElement; + private final PsiElement myPsiElement; private final String myStringToReplace; - public NonCodeUsageInfoFactory(final PsiElement element, final String stringToReplace) { - myElement = element; + public NonCodeUsageInfoFactory(@NotNull PsiElement psiElement, final String stringToReplace) { + myPsiElement = psiElement; myStringToReplace = stringToReplace; } @@ -27,6 +27,6 @@ public class NonCodeUsageInfoFactory implements UsageInfoFactory { } int start = usage.getTextRange().getStartOffset(); - return NonCodeUsageInfo.create(usage.getContainingFile(), start + startOffset, start + endOffset, myElement, myStringToReplace); + return NonCodeUsageInfo.create(usage.getContainingFile(), start + startOffset, start + endOffset, myPsiElement, myStringToReplace); } } \ No newline at end of file diff --git a/platform/lang-impl/src/com/intellij/refactoring/rename/DirectoryAsPackageRenameHandlerBase.java b/platform/lang-impl/src/com/intellij/refactoring/rename/DirectoryAsPackageRenameHandlerBase.java index c0a256838df2..135f3b0fae89 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/rename/DirectoryAsPackageRenameHandlerBase.java +++ b/platform/lang-impl/src/com/intellij/refactoring/rename/DirectoryAsPackageRenameHandlerBase.java @@ -35,7 +35,7 @@ public abstract class DirectoryAsPackageRenameHandlerBase myAllRenames = new LinkedHashMap<>(); private @NotNull PsiElement myPrimaryElement; - private String myNewName = null; + private String myNewName; private boolean mySearchInComments; private boolean mySearchTextOccurrences; @@ -130,7 +130,7 @@ public class RenameProcessor extends BaseRefactoringProcessor { super.doRun(); } - public void prepareRenaming(final @NotNull PsiElement element, final String newName, final LinkedHashMap allRenames) { + public void prepareRenaming(final @NotNull PsiElement element, final String newName, @NotNull LinkedHashMap allRenames) { final List processors = RenamePsiElementProcessor.allForElement(element); myForceShowPreview = false; for (RenamePsiElementProcessor processor : processors) { @@ -207,15 +207,16 @@ public class RenameProcessor extends BaseRefactoringProcessor { try { for (Iterator> iterator = myAllRenames.entrySet().iterator(); iterator.hasNext(); ) { Map.Entry entry = iterator.next(); - if (entry.getKey() instanceof PsiFile file) { - final PsiDirectory containingDirectory = file.getContainingDirectory(); - if (CopyFilesOrDirectoriesHandler.checkFileExist(containingDirectory, choice, file, entry.getValue(), + PsiElement psiElement = entry.getKey(); + if (psiElement instanceof PsiFile psiFile) { + final PsiDirectory containingDirectory = psiFile.getContainingDirectory(); + if (CopyFilesOrDirectoriesHandler.checkFileExist(containingDirectory, choice, psiFile, entry.getValue(), RefactoringBundle.message("command.name.rename"))) { iterator.remove(); continue; } } - RenameUtil.checkRename(entry.getKey(), entry.getValue()); + RenameUtil.checkRename(psiElement, entry.getValue()); } } catch (IncorrectOperationException e) { @@ -270,9 +271,9 @@ public class RenameProcessor extends BaseRefactoringProcessor { return dialog.showAndGet(); } - public void addElement(@NotNull PsiElement element, @NotNull String newName) { - RenameUtil.assertNonCompileElement(element); - myAllRenames.put(element, newName); + public void addElement(@NotNull PsiElement psiElement, @NotNull String newName) { + RenameUtil.assertNonCompileElement(psiElement); + myAllRenames.put(psiElement, newName); } private void setNewName(@NotNull String newName) { @@ -338,7 +339,7 @@ public class RenameProcessor extends BaseRefactoringProcessor { myPrimaryElement = elements[0]; final Iterator newNames = myAllRenames.values().iterator(); - LinkedHashMap newAllRenames = new LinkedHashMap<>(); + Map newAllRenames = new LinkedHashMap<>(); for (PsiElement resolved : elements) { newAllRenames.put(resolved, newNames.next()); } diff --git a/platform/lang-impl/src/com/intellij/refactoring/rename/RenameViewDescriptor.java b/platform/lang-impl/src/com/intellij/refactoring/rename/RenameViewDescriptor.java index 74c618c12bb8..eb2191e21377 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/rename/RenameViewDescriptor.java +++ b/platform/lang-impl/src/com/intellij/refactoring/rename/RenameViewDescriptor.java @@ -23,8 +23,7 @@ public class RenameViewDescriptor implements UsageViewDescriptor{ private final @Nls String myCodeReferencesText; private final PsiElement[] myElements; - public RenameViewDescriptor(LinkedHashMap renamesMap) { - + public RenameViewDescriptor(@NotNull LinkedHashMap renamesMap) { myElements = PsiUtilCore.toPsiElementArray(renamesMap.keySet()); Set processedElementsHeaders = new HashSet<>(); diff --git a/platform/refactoring/src/com/intellij/refactoring/rename/RenameUtil.java b/platform/refactoring/src/com/intellij/refactoring/rename/RenameUtil.java index fd1be5c3209e..7dabe22f41d1 100644 --- a/platform/refactoring/src/com/intellij/refactoring/rename/RenameUtil.java +++ b/platform/refactoring/src/com/intellij/refactoring/rename/RenameUtil.java @@ -176,7 +176,7 @@ public final class RenameUtil { } - public static void buildPackagePrefixChangedMessage(final VirtualFile[] virtualFiles, StringBuffer message, final String qualifiedName) { + public static void buildPackagePrefixChangedMessage(final VirtualFile @NotNull [] virtualFiles, @NotNull StringBuffer message, @NotNull String qualifiedName) { if (virtualFiles.length > 0) { message.append(RefactoringBundle.message("package.occurs.in.package.prefixes.of.the.following.source.folders.n", qualifiedName)); for (final VirtualFile virtualFile : virtualFiles) { @@ -186,33 +186,31 @@ public final class RenameUtil { } } - private static String getStringToReplace(PsiElement element, String newName, boolean nonJava, final RenamePsiElementProcessorBase theProcessor) { - if (element instanceof PsiMetaOwner psiMetaOwner) { + private static String getStringToReplace(@NotNull PsiElement psiElement, String newName, boolean nonJava, @NotNull RenamePsiElementProcessorBase theProcessor) { + if (psiElement instanceof PsiMetaOwner psiMetaOwner) { final PsiMetaData metaData = psiMetaOwner.getMetaData(); if (metaData != null) { return metaData.getName(); } } - if (theProcessor != null) { - String result = theProcessor.getQualifiedNameAfterRename(element, newName, nonJava); - if (result != null) { - return result; - } + String result = theProcessor.getQualifiedNameAfterRename(psiElement, newName, nonJava); + if (result != null) { + return result; } - if (element instanceof PsiNamedElement) { + if (psiElement instanceof PsiNamedElement) { return newName; } else { - LOG.error("Unknown element type : " + element); + LOG.error("Unknown element type : " + psiElement); return null; } } - public static void checkRename(PsiElement element, String newName) throws IncorrectOperationException { - if (element instanceof PsiCheckedRenameElement) { - ((PsiCheckedRenameElement)element).checkSetName(newName); + public static void checkRename(PsiElement psiElement, String newName) throws IncorrectOperationException { + if (psiElement instanceof PsiCheckedRenameElement) { + ((PsiCheckedRenameElement)psiElement).checkSetName(newName); } } @@ -260,9 +258,9 @@ public final class RenameUtil { }); } - public static void doRenameGenericNamedElement(@NotNull PsiElement namedElement, String newName, UsageInfo[] usages, + public static void doRenameGenericNamedElement(@NotNull PsiElement namedElement, String newName, UsageInfo @NotNull [] usages, @Nullable RefactoringElementListener listener) throws IncorrectOperationException { - Set reportedClasses = new HashSet<>(); + Set> reportedClasses = new HashSet<>(); for (UsageInfo usage : usages) { PsiReference reference = usage.getReference(); if (reference != null && reportedClasses.add(reference.getClass())) { @@ -276,7 +274,7 @@ public final class RenameUtil { RenameUtilBase.rename(info, newName); } - public static @Nullable List removeConflictUsages(Set usages) { + public static @Nullable List removeConflictUsages(@NotNull Set usages) { final List result = new ArrayList<>(); for (Iterator iterator = usages.iterator(); iterator.hasNext();) { UsageInfo usageInfo = iterator.next(); @@ -288,7 +286,7 @@ public final class RenameUtil { return result.isEmpty() ? null : result; } - public static void addConflictDescriptions(UsageInfo[] usages, MultiMap conflicts) { + public static void addConflictDescriptions(UsageInfo @NotNull [] usages, MultiMap conflicts) { for (UsageInfo usage : usages) { if (usage instanceof UnresolvableCollisionUsageInfo) { conflicts.putValue(usage.getElement(), ((UnresolvableCollisionUsageInfo)usage).getDescription());