mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
java: type args on raw type: ignore method calls for java 7+ completely (IDEA-262803)
GitOrigin-RevId: 99292415f76a328617b7fcbb2516085e58be76d2
This commit is contained in:
committed by
intellij-monorepo-bot
parent
1dbf9d4dc4
commit
669059a88f
+4
-6
@@ -1215,7 +1215,8 @@ public final class GenericsHighlightUtil {
|
||||
return null;
|
||||
}
|
||||
|
||||
static HighlightInfo checkParametersOnRaw(@NotNull PsiReferenceParameterList refParamList) {
|
||||
static HighlightInfo checkParametersOnRaw(@NotNull PsiReferenceParameterList refParamList,
|
||||
LanguageLevel languageLevel) {
|
||||
JavaResolveResult resolveResult = null;
|
||||
PsiElement parent = refParamList.getParent();
|
||||
PsiElement qualifier = null;
|
||||
@@ -1237,13 +1238,10 @@ public final class GenericsHighlightUtil {
|
||||
if (qualifier instanceof PsiJavaCodeReferenceElement && ((PsiJavaCodeReferenceElement)qualifier).resolve() instanceof PsiTypeParameter) return null;
|
||||
PsiClass containingClass = ((PsiMember)element).getContainingClass();
|
||||
if (containingClass != null && PsiUtil.isRawSubstitutor(containingClass, resolveResult.getSubstitutor())) {
|
||||
if ((parent instanceof PsiCallExpression || parent instanceof PsiMethodReferenceExpression) && PsiUtil.isLanguageLevel7OrHigher(parent)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (element instanceof PsiMethod) {
|
||||
if (languageLevel.isAtLeast(LanguageLevel.JDK_1_7)) return null;
|
||||
if (((PsiMethod)element).findSuperMethods().length > 0) return null;
|
||||
if (qualifier instanceof PsiReferenceExpression){
|
||||
if (qualifier instanceof PsiReferenceExpression) {
|
||||
final PsiType type = ((PsiReferenceExpression)qualifier).getType();
|
||||
final boolean isJavac7 = JavaVersionService.getInstance().isAtLeast(containingClass, JavaSdkVersion.JDK_1_7);
|
||||
if (type instanceof PsiClassType && isJavac7 && ((PsiClassType)type).isRaw()) return null;
|
||||
|
||||
+1
-1
@@ -1712,7 +1712,7 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh
|
||||
|
||||
myHolder.add(checkFeature(list, HighlightingFeature.GENERICS));
|
||||
if (!myHolder.hasErrorResults()) myHolder.add(GenericsHighlightUtil.checkParametersAllowed(list));
|
||||
if (!myHolder.hasErrorResults()) myHolder.add(GenericsHighlightUtil.checkParametersOnRaw(list));
|
||||
if (!myHolder.hasErrorResults()) myHolder.add(GenericsHighlightUtil.checkParametersOnRaw(list, myLanguageLevel));
|
||||
if (!myHolder.hasErrorResults()) {
|
||||
for (PsiTypeElement typeElement : list.getTypeParameterElements()) {
|
||||
if (typeElement.getType() instanceof PsiDiamondType) {
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ class GenericsTest {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
String v1 = new SomeClass().<error descr="Type arguments given on a raw method"><String></error>getX();
|
||||
<error descr="Incompatible types. Found: 'java.lang.Object', required: 'java.lang.String'">String v1 = new SomeClass().<String>getX();</error>
|
||||
String v2 = new SomeClass().f(); //
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user