IDEA-200293 IDE blocks on JSP reformat

re-fixed without using new API
This commit is contained in:
Dmitry Avdeev
2018-10-19 13:29:58 +03:00
parent c5d0ea86b4
commit 7658805324
3 changed files with 1 additions and 40 deletions
@@ -218,18 +218,7 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh
@Nullable
public static JavaResolveResult resolveJavaReference(@NotNull PsiReference reference) {
if (reference instanceof PsiJavaReference) {
PsiJavaReference psiJavaReference = (PsiJavaReference)reference;
return psiJavaReference.advancedResolve(false);
}
if (reference instanceof PsiPolyVariantReference) {
ResolveResult[] resolve = ((PsiPolyVariantReference)reference).
multiResolve(false, PsiReference.Hint.classHint(PsiClass.class));
if (resolve.length == 1 && resolve[0] instanceof JavaResolveResult) {
return (JavaResolveResult)resolve[0];
}
}
return null;
return reference instanceof PsiJavaReference ? ((PsiJavaReference)reference).advancedResolve(false) : null;
}
@Override
@@ -37,11 +37,4 @@ public interface PsiPolyVariantReference extends PsiReference {
* @return the array of results for resolving the reference.
*/
@NotNull ResolveResult[] multiResolve(boolean incompleteCode);
/**
* Implementations may optimize resolving process depending on the given hint.
*/
default @NotNull ResolveResult[] multiResolve(boolean incompleteCode, Hint hint) {
return ResolveResult.EMPTY_ARRAY;
}
}
@@ -19,7 +19,6 @@ import com.intellij.openapi.util.TextRange;
import com.intellij.util.ArrayFactory;
import com.intellij.util.ArrayUtil;
import com.intellij.util.IncorrectOperationException;
import com.intellij.util.ReflectionUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -67,26 +66,6 @@ public interface PsiReference {
@Nullable
PsiElement resolve();
class Hint<T extends PsiElement> {
public final Class<T> targetClass;
private Hint(Class<T> targetClass) {
this.targetClass = targetClass;
}
public static <T extends PsiElement> Hint<T> classHint(Class<T> targetClass) {
return new Hint<>(targetClass);
}
}
/**
* Implementations may optimize resolving process depending on the given hint.
*/
default <T extends PsiElement> T resolve(Hint<T> hint) {
PsiElement element = resolve();
return element != null && ReflectionUtil.isAssignable(hint.targetClass, element.getClass()) ? (T)element : null;
}
/**
* Returns the name of the reference target element which does not depend on import statements
* and other context (for example, the full-qualified name of the class if the reference targets