Class ReachableInjections

java.lang.Object
org.ek9lang.compiler.phase5.ReachableInjections
All Implemented Interfaces:
Function<Set<String>, Map<ISymbol,String>>

final class ReachableInjections extends Object implements Function<Set<String>, Map<ISymbol,String>>
THE injections that can run when the given callables run - transitively, through the phase-5 call graph: an injection (name as T!) in a body the roots reach, or a property injection of a type they construct (a property's injection belongs to its type and runs wherever the type is constructed). What can run is CallGraph.getReachableIncludingReferences(Set, Function) with each constructed type's construction and members taken as run (the runtime calls its operators with no call site). Sound, never precise. Used by DI completeness (ReachableInjectionsOrError, from each program) and by the registered-type fact (RegisteredTypeMarker, from every concurrent entry point: a registration concurrent code can inject is shared with runtime threads, S2c) - never a second walk.