@NotNull
  private static List<IntermediateStreamCall> createIntermediateCalls(@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;
  }
@NotNull
  private static List<IntermediateStreamCall> createIntermediateCalls(@NotNull GenericType producerAfterType,
                                                                      @NotNull List<PsiMethodCallExpression> expressions)