Class SamenessCompleter

java.lang.Object
org.ek9lang.compiler.phase2.SamenessCompleter
All Implemented Interfaces:
Consumer<PostPassSites>

final class SamenessCompleter extends Object implements Consumer<PostPassSites>
Completes every type's SAMENESS once types are known, after every source has been through EXPLICIT_TYPE_SYMBOL_DEFINITION (B18 - a type defines sameness once). The rule is OperationFactory.completeSameness; this finds the types and orders them.

Supers and traits are completed before the types that inherit from them, because whether a type may have sameness of its own depends on what they were given. Built-in and Java-backed types declare their operators themselves. Before TYPE_HIERARCHY_CHECKS, so a constrained type over this type clones the completed set, and before FULL_RESOLUTION, so a call such as a < b resolves to the generated operator.