Class ProcessStreamAssembly

All Implemented Interfaces:
Consumer<StreamAssemblyData>

public class ProcessStreamAssembly extends TypedSymbolAccess implements Consumer<StreamAssemblyData>
Processes/updates and checks that a stream assembly is actually viable in terms of types. This is a bit tricky because some pipeline parts can accept anything in and produce the same thing out, but in of themselves they have no idea what that type will be. It's only when we get to this stage we can push the types down from the source through each of the parts. Then finally check to see if the terminal part could receive that type. There are some other constraints as well, like sorting and grouping. This focuses on the checking/population of consumes/produces of types in each of the stages of the pipeline from the sources, pipe-line-parts* and termination. This is quite tricky because some things types are fixed and others more flexible. SymbolFactory.newStreamPart(EK9Parser.StreamPartContext, IScope) This populates the StreamCallSymbol.