Class IsNonDispatchableLifecycleMethod

java.lang.Object
org.ek9lang.compiler.phase7.calls.IsNonDispatchableLifecycleMethod
All Implemented Interfaces:
Predicate<String>

public final class IsNonDispatchableLifecycleMethod extends Object implements Predicate<String>
THE test of the compiler-synthesised LIFECYCLE methods, which are never dynamically dispatched: the constructor itself plus _i_init (instance field initialisation) and _c_init (class/static initialisation). Hold an instance.

Each <init> must run ITS OWN _i_init. Dispatching one dynamically would send a base constructor's field-initialisation call to the DERIVED body, running it against a half-built object whose own fields do not exist yet - and a base type must be as open to be extended at all, so openness alone says "virtual" for exactly the hierarchies where this breaks.

These are NOT CompilerPlumbingCalls plumbing: they have real symbols and measured complexity, so they DO carry a metadata clause. They are simply not dispatchable. Keeping the two ideas apart is the point - a site that needs "no metadata" and a site that needs "no dispatch" are different questions with different answers.

  • Constructor Details

    • IsNonDispatchableLifecycleMethod

      public IsNonDispatchableLifecycleMethod()
  • Method Details