Class InheritedDispatcherCompleter

java.lang.Object
org.ek9lang.compiler.phase2.InheritedDispatcherCompleter
All Implemented Interfaces:
Consumer<PostPassSites>

final class InheritedDispatcherCompleter extends Object implements Consumer<PostPassSites>
Gives each sub-type that adds a handler to an INHERITED dispatcher its synthesised entry point (InheritedDispatcher, front-end rationalisation D2), after every source has been through EXPLICIT_TYPE_SYMBOL_DEFINITION: supers are linked and parameter types known only then.

Supers first, so an entry point synthesised on a middle type is inherited by the types below it. Before FULL_RESOLUTION, so phase 3's dispatcher checks see the entry point, and a call made through the sub-type resolves as it should. Built-in and Java-backed types are not completed (PostPassSites leaves them out) - but they may be the SUPER that declares the dispatcher: Aspect.afterAdvice is one.

  • Constructor Details

    • InheritedDispatcherCompleter

      InheritedDispatcherCompleter()
  • Method Details