mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
take implicit usages into account (IDEA-75803)
This commit is contained in:
@@ -102,7 +102,7 @@ public class PostHighlightingPass extends TextEditorHighlightingPass {
|
||||
private final JavaCodeStyleManager myStyleManager;
|
||||
private int myCurrentEntryIndex;
|
||||
private boolean myHasMissortedImports;
|
||||
private final ImplicitUsageProvider[] myImplicitUsageProviders;
|
||||
private static final ImplicitUsageProvider[] ourImplicitUsageProviders = Extensions.getExtensions(ImplicitUsageProvider.EP_NAME);
|
||||
private UnusedDeclarationInspection myDeadCodeInspection;
|
||||
private UnusedSymbolLocalInspection myUnusedSymbolInspection;
|
||||
private HighlightDisplayKey myUnusedSymbolKey;
|
||||
@@ -124,8 +124,6 @@ public class PostHighlightingPass extends TextEditorHighlightingPass {
|
||||
|
||||
myStyleManager = JavaCodeStyleManager.getInstance(myProject);
|
||||
myCurrentEntryIndex = -1;
|
||||
|
||||
myImplicitUsageProviders = Extensions.getExtensions(ImplicitUsageProvider.EP_NAME);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -346,9 +344,9 @@ public class PostHighlightingPass extends TextEditorHighlightingPass {
|
||||
}
|
||||
|
||||
|
||||
private boolean isImplicitUsage(final PsiModifierListOwner element, ProgressIndicator progress) {
|
||||
public static boolean isImplicitUsage(final PsiModifierListOwner element, ProgressIndicator progress) {
|
||||
if (UnusedSymbolLocalInspection.isInjected(element)) return true;
|
||||
for (ImplicitUsageProvider provider : myImplicitUsageProviders) {
|
||||
for (ImplicitUsageProvider provider : ourImplicitUsageProviders) {
|
||||
progress.checkCanceled();
|
||||
if (provider.isImplicitUsage(element)) {
|
||||
return true;
|
||||
@@ -358,8 +356,8 @@ public class PostHighlightingPass extends TextEditorHighlightingPass {
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean isImplicitRead(final PsiVariable element, ProgressIndicator progress) {
|
||||
for(ImplicitUsageProvider provider: myImplicitUsageProviders) {
|
||||
private static boolean isImplicitRead(final PsiVariable element, ProgressIndicator progress) {
|
||||
for(ImplicitUsageProvider provider: ourImplicitUsageProviders) {
|
||||
progress.checkCanceled();
|
||||
if (provider.isImplicitRead(element)) {
|
||||
return true;
|
||||
@@ -368,8 +366,8 @@ public class PostHighlightingPass extends TextEditorHighlightingPass {
|
||||
return UnusedSymbolLocalInspection.isInjected(element);
|
||||
}
|
||||
|
||||
private boolean isImplicitWrite(final PsiVariable element, ProgressIndicator progress) {
|
||||
for(ImplicitUsageProvider provider: myImplicitUsageProviders) {
|
||||
private static boolean isImplicitWrite(final PsiVariable element, ProgressIndicator progress) {
|
||||
for(ImplicitUsageProvider provider: ourImplicitUsageProviders) {
|
||||
progress.checkCanceled();
|
||||
if (provider.isImplicitWrite(element)) {
|
||||
return true;
|
||||
|
||||
+1
-1
@@ -100,7 +100,7 @@ public class GroovyPostHighlightingPass extends TextEditorHighlightingPass {
|
||||
}
|
||||
}
|
||||
|
||||
if (deadCodeEnabled && element instanceof GrNamedElement) {
|
||||
if (deadCodeEnabled && element instanceof GrNamedElement && !PostHighlightingPass.isImplicitUsage((GrNamedElement)element, progress)) {
|
||||
PsiElement nameId = ((GrNamedElement)element).getNameIdentifierGroovy();
|
||||
String name = ((GrNamedElement)element).getName();
|
||||
if (element instanceof GrTypeDefinition && PostHighlightingPass.isGloballyUnused((GrTypeDefinition)element, progress, null, name)) {
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package org.jetbrains.plugins.groovy.lang.psi;
|
||||
|
||||
import com.intellij.psi.PsiModifierListOwner;
|
||||
import com.intellij.psi.PsiNamedElement;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -23,7 +24,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
/**
|
||||
* @author ven
|
||||
*/
|
||||
public interface GrNamedElement extends PsiNamedElement, GroovyPsiElement {
|
||||
public interface GrNamedElement extends PsiNamedElement, GroovyPsiElement, PsiModifierListOwner {
|
||||
@NotNull
|
||||
PsiElement getNameIdentifierGroovy();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user