mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
inline generics in DefaultHighlightVisitor#cloneTemplates
GitOrigin-RevId: 569aa9ab11e104a15cf2653143d0d663ebea70db
This commit is contained in:
committed by
intellij-monorepo-bot
parent
8a613b0b73
commit
ea60c7b743
+4
-18
@@ -9,7 +9,6 @@ import com.intellij.lang.LanguageAnnotators;
|
||||
import com.intellij.lang.LanguageUtil;
|
||||
import com.intellij.lang.annotation.Annotation;
|
||||
import com.intellij.lang.annotation.Annotator;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.progress.ProgressManager;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.project.DumbService;
|
||||
@@ -23,9 +22,7 @@ import com.intellij.psi.PsiFile;
|
||||
import com.intellij.util.ReflectionUtil;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.containers.FactoryMap;
|
||||
import com.intellij.util.pico.CachingConstructorInjectionComponentAdapter;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.picocontainer.PicoContainer;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
@@ -183,22 +180,11 @@ final class DefaultHighlightVisitor implements HighlightVisitor, DumbAware {
|
||||
return builder.create();
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@NotNull
|
||||
private static <V> List<V> cloneTemplates(@NotNull Collection<? extends V> templates) {
|
||||
List<V> result = new ArrayList<>(templates.size());
|
||||
PicoContainer container = ApplicationManager.getApplication().getPicoContainer();
|
||||
for (V template : templates) {
|
||||
Class<? extends V> aClass = (Class<? extends V>)template.getClass();
|
||||
V clone;
|
||||
// todo in general CachingConstructorInjectionComponentAdapter should be not used at all, but for now disable it only for known cases
|
||||
if (Annotator.class.isAssignableFrom(aClass)) {
|
||||
clone = ReflectionUtil.newInstance(aClass);
|
||||
}
|
||||
else {
|
||||
clone = (V)new CachingConstructorInjectionComponentAdapter(aClass.getName(), aClass, null, true).getComponentInstance(container);
|
||||
}
|
||||
result.add(clone);
|
||||
private static List<Annotator> cloneTemplates(@NotNull Collection<? extends Annotator> templates) {
|
||||
List<Annotator> result = new ArrayList<>(templates.size());
|
||||
for (Annotator template : templates) {
|
||||
result.add(ReflectionUtil.newInstance(template.getClass()));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user