List<IntermediateStreamCall> (@NotNull GenericType producerAfterType, @NotNull List<PsiMethodCallExpression> expressions) { final List<IntermediateStreamCall> result = new ArrayList<>(); GenericType typeBefore = producerAfterType; for (final PsiMethodCallExpression callExpression : expressions) { final String name = resolveMethodName(callExpression); final List<CallArgument> args = resolveArguments(callExpression); final GenericType type = resolveType(callExpression); result.add(new IntermediateStreamCallImpl(name, args, typeBefore, type, callExpression.getTextRange())); typeBefore = type; } return result; }