make highlighting do useful work in non-physical file

This commit is contained in:
Alexey Kudravtsev
2018-05-29 18:21:20 +03:00
parent 7533e327b7
commit a395c8d0f3
2 changed files with 7 additions and 8 deletions
@@ -883,16 +883,16 @@ public class HighlightUtil extends HighlightUtilBase {
isAllowed = false;
}
if (PsiModifier.PRIVATE.equals(modifier)) {
isAllowed &= modifierOwnerParent instanceof PsiClass &&
(!((PsiClass)modifierOwnerParent).isInterface() || PsiUtil.isLanguageLevel9OrHigher(modifierOwner) && !((PsiClass)modifierOwnerParent).isAnnotationType());
if (PsiModifier.PRIVATE.equals(modifier) && modifierOwnerParent instanceof PsiClass) {
isAllowed &= !((PsiClass)modifierOwnerParent).isInterface() ||
PsiUtil.isLanguageLevel9OrHigher(modifierOwner) && !((PsiClass)modifierOwnerParent).isAnnotationType();
}
else if (PsiModifier.STRICTFP.equals(modifier)) {
isAllowed &= modifierOwnerParent instanceof PsiClass && (!((PsiClass)modifierOwnerParent).isInterface() || PsiUtil.isLanguageLevel8OrHigher(modifierOwner));
isAllowed &= !((PsiClass)modifierOwnerParent).isInterface() || PsiUtil.isLanguageLevel8OrHigher(modifierOwner);
}
else if (PsiModifier.PROTECTED.equals(modifier) || PsiModifier.TRANSIENT.equals(modifier) ||
PsiModifier.SYNCHRONIZED.equals(modifier)) {
isAllowed &= modifierOwnerParent instanceof PsiClass && !((PsiClass)modifierOwnerParent).isInterface();
isAllowed &= !((PsiClass)modifierOwnerParent).isInterface();
}
if (containingClass != null && containingClass.isInterface()) {
@@ -1238,7 +1238,7 @@ public class HighlightUtil extends HighlightUtilBase {
@NotNull
private static List<HighlightInfo> checkMultiCatchParameter(@NotNull final PsiParameter parameter,
@NotNull final Collection<PsiClassType> thrownTypes) {
@NotNull final Collection<? extends PsiClassType> thrownTypes) {
final List<PsiTypeElement> typeElements = PsiUtil.getParameterTypeElements(parameter);
final List<HighlightInfo> highlights = new ArrayList<>(typeElements.size());
@@ -912,8 +912,7 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh
public void visitMethodCallExpression(PsiMethodCallExpression expression) {
if (!myHolder.hasErrorResults()) myHolder.add(GenericsHighlightUtil.checkEnumSuperConstructorCall(expression));
if (!myHolder.hasErrorResults()) myHolder.add(HighlightClassUtil.checkSuperQualifierType(myFile.getProject(), expression));
// in case of JSP synthetic method call, do not check
if (myFile.isPhysical() && !myHolder.hasErrorResults()) {
if (!myHolder.hasErrorResults()) {
try {
myHolder.add(HighlightMethodUtil.checkMethodCall(expression, myResolveHelper, myLanguageLevel, myJavaSdkVersion, myFile));
}