Class HasPropertyCycle

java.lang.Object
org.ek9lang.compiler.support.HasPropertyCycle
All Implemented Interfaces:
Predicate<IAggregateSymbol>

public final class HasPropertyCycle extends Object implements Predicate<IAggregateSymbol>
THE reading of phase 5's property-cycle mark (phase5/PropertyCycleMarker): can an object of this type reach itself through its properties? Hold one and ask it - never the squirrelled data directly. Phase 7 synthesis asks it whether a type's GENERATED operators need the runtime cycle guard (Contract 13); which fields a generated #? must leave out is LeftOutOfHash.

A concrete parameterisation of a developer's generic that phase 5 never saw (phase 7 still makes a few) has no mark at all; it is treated as cyclic, so it is guarded - a guard on an acyclic type costs a little time and is never wrong, a missing one is a StackOverflowError.