Class IsCaptureConstructor

java.lang.Object
org.ek9lang.compiler.support.IsCaptureConstructor
All Implemented Interfaces:
Predicate<ISymbol>

public final class IsCaptureConstructor extends Object implements Predicate<ISymbol>
THE capture constructor of a dynamic class: the constructor whose parameter types are EXACTLY the capture types, in capture order (TakesExactlyTheTypesOf) - the one the definition site builds the object through, and the only one the captured values are stored by (Steve, 2026-10-28: "we need an exact match"). The developer may write it - the tuple's 'interface', parameters named as they wish - or phase 3 adds it; never chosen by the number of parameters, and never a cost-based best match (an Any or promotable parameter is not the capture type).

Decided ONCE, in phase 3 (AggregateManipulator.addCaptureConstructorIfRequired), and recorded on the constructor (CaptureConstructorMarker); every later phase asks THIS and never re-derives it: phase 5 credits it with every capture (phase5/CaptureConstructorEntry, ConstructorFieldInitialisationListener), phase 7 stores the captured values in it (DynamicClassDfnGenerator). Any other constructor of a dynamic class is an ordinary constructor: it sets every property itself, captures included (CapturedPropertiesRecorder), and gets no capture stores. A clone made for a parameterisation carries the record with it.

The reader half of what was CaptureConstructor (no-statics lane S3, 2026-10-29); the writer is CaptureConstructorMarker, the list of what a constructor must set ConstructorProperties.

  • Constructor Details

    • IsCaptureConstructor

      public IsCaptureConstructor()
  • Method Details