Commit 8db3c825 authored by sergey.vasiliev's avatar sergey.vasiliev Committed by intellij-monorepo-bot
Browse files

Assert: the expensive method should not be called inside the highlighting pass...

Assert: the expensive method should not be called inside the highlighting pass (IDEA-321237, IDEA-320645, IDEA-320723)

GitOrigin-RevId: 12f6d4d24d2f96e569301886313addb09e53f89b
parent 9f2b606f
Branches unavailable Tags unavailable
No related merge requests found
Showing with 4 additions and 2 deletions
+4 -2
......@@ -184,7 +184,7 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh
private void registerReferencesFromInjectedFragments(@NotNull PsiElement element) {
InjectedLanguageManager manager = InjectedLanguageManager.getInstance(myFile.getProject());
manager.enumerateEx(element, myFile, false, (injectedPsi, places) -> {
if (InjectedLanguageJavaReferenceSupplier.doRegisterReferences(injectedPsi.getLanguage().getID())) {
if (InjectedLanguageJavaReferenceSupplier.containsPsiMemberReferences(injectedPsi.getLanguage().getID())) {
injectedPsi.accept(REGISTER_REFERENCES_VISITOR);
}
});
......
......@@ -4,8 +4,10 @@ package com.intellij.codeInsight.daemon.impl.analysis;
import com.intellij.openapi.extensions.ExtensionPointName;
import com.intellij.openapi.extensions.RequiredElement;
import com.intellij.util.xmlb.annotations.Attribute;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
@ApiStatus.Experimental
public final class InjectedLanguageJavaReferenceSupplier {
public static final ExtensionPointName<InjectedLanguageJavaReferenceSupplier> EP_NAME =
ExtensionPointName.create("com.intellij.injectedLanguageJavaReferenceSupplier");
......@@ -17,7 +19,7 @@ public final class InjectedLanguageJavaReferenceSupplier {
@RequiredElement
public String language;
public static boolean doRegisterReferences(@NotNull String languageId) {
public static boolean containsPsiMemberReferences(@NotNull String languageId) {
for (InjectedLanguageJavaReferenceSupplier handler : EP_NAME.getExtensionList()) {
if (languageId.equals(handler.language)) return true;
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment