Class PostPassSites

java.lang.Object
org.ek9lang.compiler.phase2.PostPassSites

final class PostPassSites extends Object
What the bare-default and sameness post-passes at the end of EXPLICIT_TYPE_SYMBOL_DEFINITION act on, gathered in ONE walk per source rather than one walk each.

Gathering first is safe: it reads only the parse tree, the symbols phase 1 recorded, fully qualified names and the EXTERN squirrel, none of which completing an operator changes (it only defines method symbols). The passes still run in the same order over the same nodes - every bare default, in walk order, then every sameness.

  • Constructor Details

    • PostPassSites

      PostPassSites()
  • Method Details

    • of

      static PostPassSites of(List<ParsedModule> parsedModules)
      Gather the sites of every source, in source order.
    • defaultOperators

      Every bare 'default operator', in walk order.
    • samenessDeclaredIn

      Map<IAggregateSymbol, ParsedModule> samenessDeclaredIn()
      The aggregates whose sameness is completed (not built-in, not Java-backed), in walk order, with their module.
    • servicesDeclaredIn

      Map<IAggregateSymbol, ParsedModule> servicesDeclaredIn()
      The services (not built-in, not Java-backed), in walk order, with their module. Services take no part in sameness; they are listed apart for the synthesised '?' (Q-COMPONENT-?).
    • dynamicClasses

      Set<IAggregateSymbol> dynamicClasses()
      The dynamic classes among samenessDeclaredIn: their captures are known only in FULL_RESOLUTION.
    • bareDefaultTokens

      Map<IAggregateSymbol, IToken> bareDefaultTokens()
      The 'default' token of an aggregate's bare 'default operator' (the last one, if it has several).