Class DynamicClassSuperConstructorOrError
java.lang.Object
org.ek9lang.compiler.common.RuleSupport
org.ek9lang.compiler.common.TypedSymbolAccess
org.ek9lang.compiler.phase3.DynamicClassSuperConstructorOrError
- All Implemented Interfaces:
Consumer<IAggregateSymbol>
final class DynamicClassSuperConstructorOrError
extends TypedSymbolAccess
implements Consumer<IAggregateSymbol>
The dynamic-class half of
SuperConstructorAccessOrError (D98, fuzz6 2026-11-09). A dynamic class is made
where it is written, by its capture constructor (CaptureConstructorCreator), and that constructor always
chains through the IMPLICIT super() - there is nowhere to write a super(...). So when the super has
no accessible no-argument constructor (() extends Parser of Date as class, where Parser() is
private) the dynamic class can never be made: E07176 at the dynamic class. It was missed, and IR generation
then failed on both back ends ("no honest source for call metadata").
The same predicate as the named-class check (AggregateManipulator.superHasAccessibleNoArgConstructor(IAggregateSymbol));
E07177's advice (write a constructor) does not apply, since the capture constructor is the one that is called.
-
Field Summary
Fields inherited from class RuleSupport
errorListener, symbolsAndScopes -
Constructor Summary
ConstructorsConstructorDescriptionDynamicClassSuperConstructorOrError(SymbolsAndScopes symbolsAndScopes, ErrorListener errorListener) -
Method Summary
Methods inherited from class TypedSymbolAccess
emitTypeNotResolvedError, getRecordedAndTypedSymbol, isAlreadyInError, isProcessingScopePure, isPureReassignmentDisallowed, recordATypedSymbol
-
Constructor Details
-
DynamicClassSuperConstructorOrError
DynamicClassSuperConstructorOrError(SymbolsAndScopes symbolsAndScopes, ErrorListener errorListener)
-
-
Method Details
-
accept
- Specified by:
acceptin interfaceConsumer<IAggregateSymbol>
-