EA-96870 - IAE: HighlightInfo$B.$$$reportNull$$$

This commit is contained in:
Alexey Kudravtsev
2017-03-27 13:40:00 +03:00
parent ca91e3c9c5
commit a5f56d548f
@@ -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));
}
}
}
}