mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-05-06 05:10:22 +07:00
[java-inspections] UseBulkOperation: Fix missing warning when super is a qualifier
GitOrigin-RevId: 3e482302d12de0997964e9826c396456b86ec921
This commit is contained in:
committed by
intellij-monorepo-bot
parent
91ddf5b7f4
commit
e6bd673b2a
@@ -251,7 +251,7 @@ public class UseBulkOperationInspection extends AbstractBaseJavaLocalInspectionT
|
||||
@NotNull BulkMethodInfo info,
|
||||
@NotNull PsiReferenceExpression methodExpression) {
|
||||
PsiExpression qualifier = PsiUtil.skipParenthesizedExprDown(ExpressionUtils.getEffectiveQualifier(methodExpression));
|
||||
if (qualifier instanceof PsiThisExpression) {
|
||||
if (qualifier instanceof PsiThisExpression || qualifier instanceof PsiSuperExpression) {
|
||||
PsiMethod method = PsiTreeUtil.getParentOfType(iterable, PsiMethod.class);
|
||||
// Likely we are inside of the bulk method implementation
|
||||
if (method != null && method.getName().equals(info.getBulkName())) return;
|
||||
@@ -265,7 +265,7 @@ public class UseBulkOperationInspection extends AbstractBaseJavaLocalInspectionT
|
||||
|
||||
@Contract("null -> false")
|
||||
private boolean isSupportedQualifier(PsiExpression qualifier) {
|
||||
if (qualifier instanceof PsiThisExpression) return true;
|
||||
if (qualifier instanceof PsiThisExpression || qualifier instanceof PsiSuperExpression) return true;
|
||||
if (qualifier instanceof PsiReferenceExpression) {
|
||||
PsiExpression subQualifier = ((PsiReferenceExpression)qualifier).getQualifierExpression();
|
||||
return subQualifier == null || isSupportedQualifier(subQualifier);
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
// "Replace iteration with bulk 'Collection.addAll' call" "true"
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class Main {
|
||||
static class MyList extends AbstractCollection<String> {
|
||||
@Override
|
||||
public Iterator<String> iterator() {
|
||||
return Collections.emptyIterator();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int size() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public boolean myAdd(Collection<? extends String> c) {
|
||||
super.addAll(c);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
// "Replace iteration with bulk 'Collection.addAll' call" "false"
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class Main {
|
||||
static class MyList extends AbstractCollection<String> {
|
||||
@Override
|
||||
public Iterator<String> iterator() {
|
||||
return Collections.emptyIterator();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int size() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean addAll(Collection<? extends String> c) {
|
||||
for (String e : c) {
|
||||
super.a<caret>dd(e);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
// "Replace iteration with bulk 'Collection.addAll' call" "true"
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class Main {
|
||||
static class MyList extends AbstractCollection<String> {
|
||||
@Override
|
||||
public Iterator<String> iterator() {
|
||||
return Collections.emptyIterator();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int size() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public boolean myAdd(Collection<? extends String> c) {
|
||||
for (String e : c) {
|
||||
super.<caret>add(e);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user