Class ReachOfCall

java.lang.Object
org.ek9lang.compiler.support.sharing.ReachOfCall
All Implemented Interfaces:
BiFunction<org.antlr.v4.runtime.tree.ParseTree, Function<org.antlr.v4.runtime.tree.ParseTree, ISymbol>, Reach>

public final class ReachOfCall extends Object implements BiFunction<org.antlr.v4.runtime.tree.ParseTree, Function<org.antlr.v4.runtime.tree.ParseTree, ISymbol>, Reach>
THE reading of what a call that may run the program's own code can change: everything reachable from Reach, which the value tracker turns into what it forgets (ValueTrackingAnalyzer.recordCallThatMayChange). A value that is certainly fresh - a literal, a constructor call with nothing to reach, an operator's new result - reaches nothing.
  • Constructor Details

    • ReachOfCall

      public ReachOfCall()
  • Method Details

    • apply

      public Reach apply(org.antlr.v4.runtime.tree.ParseTree call, Function<org.antlr.v4.runtime.tree.ParseTree, ISymbol> recorded)
      Specified by:
      apply in interface BiFunction<org.antlr.v4.runtime.tree.ParseTree, Function<org.antlr.v4.runtime.tree.ParseTree, ISymbol>, Reach>