From deb0320103faf96b9fa7613492e185829312b002 Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Tue, 18 Oct 2016 12:43:37 +0200 Subject: [PATCH] safe delete: ensure javadoc refs are processed on waterfall parameter deletion (IDEA-162675) --- .../safeDelete/SafeDeleteJavaCallerChooser.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/java/java-impl/src/com/intellij/refactoring/safeDelete/SafeDeleteJavaCallerChooser.java b/java/java-impl/src/com/intellij/refactoring/safeDelete/SafeDeleteJavaCallerChooser.java index c6fd94d6be25..59f30fb75226 100644 --- a/java/java-impl/src/com/intellij/refactoring/safeDelete/SafeDeleteJavaCallerChooser.java +++ b/java/java-impl/src/com/intellij/refactoring/safeDelete/SafeDeleteJavaCallerChooser.java @@ -21,6 +21,7 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.Ref; import com.intellij.psi.*; +import com.intellij.psi.javadoc.PsiDocTag; import com.intellij.psi.search.LocalSearchScope; import com.intellij.psi.search.searches.ReferencesSearch; import com.intellij.psi.util.PsiTreeUtil; @@ -29,6 +30,7 @@ import com.intellij.refactoring.changeSignature.MethodNodeBase; import com.intellij.refactoring.changeSignature.inCallers.JavaCallerChooser; import com.intellij.refactoring.changeSignature.inCallers.JavaMethodNode; import com.intellij.refactoring.safeDelete.usageInfo.SafeDeleteParameterCallHierarchyUsageInfo; +import com.intellij.refactoring.safeDelete.usageInfo.SafeDeleteReferenceJavaDeleteUsageInfo; import com.intellij.usageView.UsageInfo; import com.intellij.util.Consumer; import com.intellij.util.Function; @@ -84,6 +86,15 @@ abstract class SafeDeleteJavaCallerChooser extends JavaCallerChooser { } return true; }); + + ReferencesSearch.search(parameter).forEach(reference -> { + PsiElement element = reference.getElement(); + final PsiDocTag docTag = PsiTreeUtil.getParentOfType(element, PsiDocTag.class); + if (docTag != null) { + foreignMethodUsages.add(new SafeDeleteReferenceJavaDeleteUsageInfo(docTag, parameter, true)); + } + return true; + }); } };