mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-05 01:50:56 +07:00
[java-inspections] Do not fuse PriorityQueue and PriorityBlockingQueue into the stream operation
It's more efficient to construct these containers from the collection directly Fixes IDEA-324751 Inefficient code suggested by the "Stream may be extended replacing PriorityQueue" inspection GitOrigin-RevId: 4a1ee4882e4c0d5b303f14f5d3a643df5ecd9933
This commit is contained in:
committed by
intellij-monorepo-bot
parent
7ba5b8972a
commit
07d22ea643
@@ -922,6 +922,10 @@ class CollectMigration extends BaseStreamApiMigration {
|
||||
if (!(candidate.myCandidate instanceof PsiCallExpression callExpression)) return null;
|
||||
PsiClass targetClass = PsiUtil.resolveClassInClassTypeOnly(candidate.myCandidate.getType());
|
||||
if (!InheritanceUtil.isInheritor(targetClass, JAVA_UTIL_COLLECTION)) return null;
|
||||
if ("java.util.concurrent.PriorityBlockingQueue".equals(targetClass.getQualifiedName()) ||
|
||||
"java.util.PriorityQueue".equals(targetClass.getQualifiedName())) {
|
||||
return null;
|
||||
}
|
||||
if (!ConstructionUtils.isPrepopulatedCollectionInitializer(callExpression)) return null;
|
||||
if (JAVA_UTIL_HASH_SET.equals(targetClass.getQualifiedName()) && intermediateSteps.equals(".distinct()")) {
|
||||
intermediateSteps = "";
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
// "Fuse PriorityQueue into the Stream API chain" "false"
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
class Test {
|
||||
void test(Stream<String> s) {
|
||||
PriorityQueue<String> strings = new PriorityQueue<>(s.<caret>collect(Collectors.toList()));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user