diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightVisitorImpl.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightVisitorImpl.java index ed1b4fd6f623..569279e6155f 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightVisitorImpl.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightVisitorImpl.java @@ -1069,17 +1069,17 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh if (parent instanceof PsiJavaCodeReferenceElement || ref.isQualified()) { if (!myHolder.hasErrorResults() && resolved instanceof PsiTypeParameter) { - boolean cannotSelectFromTypeParameter = !myJavaSdkVersion.isAtLeast(JavaSdkVersion.JDK_1_7); - if (!cannotSelectFromTypeParameter) { + boolean canSelectFromTypeParameter = myJavaSdkVersion.isAtLeast(JavaSdkVersion.JDK_1_7); + if (canSelectFromTypeParameter) { final PsiClass containingClass = PsiTreeUtil.getParentOfType(ref, PsiClass.class); if (containingClass != null) { if (PsiTreeUtil.isAncestor(containingClass.getExtendsList(), ref, false) || PsiTreeUtil.isAncestor(containingClass.getImplementsList(), ref, false)) { - cannotSelectFromTypeParameter = true; + canSelectFromTypeParameter = false; } } } - if (cannotSelectFromTypeParameter) { + if (!canSelectFromTypeParameter) { myHolder.add(HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).descriptionAndTooltip("Cannot select from a type parameter").range(ref).create()); } } @@ -1443,12 +1443,14 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh if (description != null) { final PsiElement referenceNameElement = ObjectUtils.notNull(expression.getReferenceNameElement(), expression); - final HighlightInfo highlightInfo = - HighlightInfo.newHighlightInfo(results.length == 0 ? HighlightInfoType.WRONG_REF : HighlightInfoType.ERROR) - .descriptionAndTooltip(description).range(referenceNameElement).create(); - myHolder.add(highlightInfo); - final TextRange fixRange = HighlightMethodUtil.getFixRange(referenceNameElement); - QuickFixAction.registerQuickFixAction(highlightInfo, fixRange, QuickFixFactory.getInstance().createCreateMethodFromUsageFix(expression)); + if (referenceNameElement != null) { + final HighlightInfo highlightInfo = + HighlightInfo.newHighlightInfo(results.length == 0 ? HighlightInfoType.WRONG_REF : HighlightInfoType.ERROR) + .descriptionAndTooltip(description).range(referenceNameElement).create(); + myHolder.add(highlightInfo); + final TextRange fixRange = HighlightMethodUtil.getFixRange(referenceNameElement); + QuickFixAction.registerQuickFixAction(highlightInfo, fixRange, QuickFixFactory.getInstance().createCreateMethodFromUsageFix(expression)); + } } } }