mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
TerminalOperation: check arguments count for "collectingAndThen" collector.
Fixes EA-127467 - AIOOBE: TerminalOperation.fromCollector
This commit is contained in:
@@ -193,6 +193,7 @@ abstract class TerminalOperation extends Operation {
|
||||
fn = FunctionHelper.create(collectorArgs[0], 0);
|
||||
return fn == null ? null : new ToCollectionTerminalOperation(resultType, fn, null);
|
||||
case "collectingAndThen": {
|
||||
if (collectorArgs.length != 2) return null;
|
||||
PsiExpression collectorCall = collectorArgs[0];
|
||||
PsiType downstreamResultType = PsiUtil.substituteTypeParameter(collectorCall.getType(), "java.util.stream.Collector", 2, false);
|
||||
if (downstreamResultType == null) return null;
|
||||
|
||||
+6
@@ -56,4 +56,10 @@ public class Main {
|
||||
}
|
||||
Map<Integer, List<String>> map = Collections.unmodifiableMap(result);
|
||||
}
|
||||
|
||||
void incomplete(List<String> people) {
|
||||
List<String> list1 = people.stream().collect( // comment
|
||||
Collectors.collectingAndThen(Collectors.toList()));
|
||||
}
|
||||
|
||||
}
|
||||
+6
@@ -36,4 +36,10 @@ public class Main {
|
||||
Collectors.collectingAndThen(Collectors.groupingBy(String::length),
|
||||
m -> Collections.unmodifiableMap(m)));
|
||||
}
|
||||
|
||||
void incomplete(List<String> people) {
|
||||
List<String> list1 = people.stream().collect( // comment
|
||||
Collectors.collectingAndThen(Collectors.toList()));
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user