Class IncompleteConstructorCallOrError

All Implemented Interfaces:
Consumer<EK9Parser.CallContext>

final class IncompleteConstructorCallOrError extends TypedSymbolAccess implements Consumer<EK9Parser.CallContext>
A construction call that reaches a constructor which leaves properties without a value (E08264).

A private constructor may leave properties unset - the 'default private X()' idiom - because it is meant to be reached only through this(...) from a constructor that then sets them. Walk 0 (ConstructorFieldInitialisationListener) marks a constructor with the properties it leaves unset (PropertiesLeftUnset); for a private one this rejects any other way of reaching it - the type constructing an object of itself, such as blank() <- rtn as Label: Label() or, in a generic, Holder() of T. Without it the object exists with a property that is a raw null, and the first read of it - or the generated ? - fails at run time.

this(...) and super(...) are not construction calls (they are steps of a constructor), so they are not checked here: a this(...) to such a constructor is judged where it is made, by what the delegating constructor then sets. An accessible constructor that leaves a property unset is reported at the property instead, and an abstract type is never constructed directly.

collect as T makes its T with T's no-argument constructor, exactly as T() would, so it is a construction call too (acceptCollect(EK9Parser.StreamExpressionTerminationContext)): inside T, where a private no-argument constructor is accessible, collect as T reaching a 'default private T()' that leaves properties unset is E08264 as T() is (lane defects-w3, 2026-10-09 - it compiled clean and the first | threw a NullPointerException). Outside T the private constructor is not accessible at all (phase 3, E06180).