private Stream <CompilationMessage> ValidateAggregationResultMethod(ExecutableElement aggregationFunction, Element returnType, IList <ExecutableElement> resultMethods) { if (resultMethods.Count != 1) { return(Stream.of(MissingAnnotation(aggregationFunction, returnType, resultMethods, typeof(UserAggregationResult)))); } ExecutableElement resultMethod = resultMethods.GetEnumerator().next(); return(Stream.concat(ValidateParameters(resultMethod, typeof(UserAggregationUpdate)), _functionVisitor.validateReturnType(resultMethod))); }
public override Stream <CompilationMessage> VisitExecutable(ExecutableElement executableElement, Void ignored) { return(Stream.of <Stream <CompilationMessage> >(_functionVisitor.validateEnclosingClass(executableElement), _functionVisitor.validateParameters(executableElement.Parameters), _functionVisitor.validateName(executableElement), _functionVisitor.validateReturnType(executableElement)).flatMap(System.Func.identity())); }