Package org.ek9lang.compiler.support.operators
package org.ek9lang.compiler.support.operators
-
ClassesClassDescriptionEVERY operator of one name declared ABOVE an aggregate - each level's own overloads, nearest level first, never
Any's.THE "is a value of EXACTLY this type always set - its '?' the one synthesised for a field-less type (IsSynthesisedIsSet, Q-COMPONENT-?), answering true?" Read by phase 5's value tracker (F3, Steve 2026-10-07):s <- FieldlessType()thenif s?is provably true (E08088), asInteger()is provably unset.THE "can the existing operator be called with the candidate default's arguments?" - each candidate parameter type assignable to the existing one's, same count.THE operator of one name a type declares in its OWN scope, preferring the overload that takes the type itself when there are several (ExactSingleParameter) - and otherwise ANY overload (a zero-argument$or?has no parameter to match).The type a callable declares it returns, if it returns one - whatNarrowedReturnTypesandNarrowedFunctionReturnTypescompare.THE "does the author's source give this type its OWN '?'" - hand-written,default operator ?or the baredefault operator- for tools that edit source (adding a type's first field must also add a '?', E07235).THE spelling of inequality the compiler resolves: a developer's!=is the operator<>(method_neq); everything else is returned as written.THE "is this '?' the one synthesised for a field-less type (FIELDLESS_IS_SET)?" of Q-COMPONENT-? (FieldlessIsSet).THE "does this RESOLVED operator keep an unset receiver unset, whatever its argument?" - theKEEPS_UNSETsquirrel the bootstrap reads from@Ek9Operator(keepsUnset = true)(seeUnsetKeepingOperator).THE mirror of a relational operator glyph, for re-expressinga OP basb OP' a:5 > xisx < 5.THE covariant return of a function: its super function's return type, when this function narrows it - the function form ofNarrowedReturnTypes(N07, phase 7's covariant bridges).THE return types of the (non-private) parent declarations a method overrides (OverriddenDeclarations) with a NARROWER - covariant - return, one per distinct type (N07, phase 7's covariant bridges).THE nearest declaration above an aggregate that a level test finds - asked of each super class in turn, nearest first (SuperClassChain).THE nearest operator ABOVE a type: the declaration a type would inherit, found by walking its super CLASS chain (never its traits) and stopping at the first level that declares it.THE nearest SAMENESS operator above an aggregate (D19, Steve 2026-10-20): the nearestoperatorName(==or<=>) declared above it that compares the level declaring it with ITSELF (IsSelfComparison) - matched by SIGNATURE, never by name, neverAny's.THE normalisation of a relational operator glyph, shared by every analysis that reads one - the symbolic engine's guards and constraints, require preconditions, and the flow analysis's symbolic path conditions.THE place a missing operator belongs when NOTHING above an aggregate declares it (Q4, Steve 2026-10-08): the nearest super class that HAS fields of its own - the root of the data decides whether its fields are exposed (R4) - or, when no super class has fields, the topmost one (the hierarchy's root belowAny).THE type that declares an operator - its OWNER, which a generated super call names (Contract 19,NearestOperatorAbove).THE operator an in-place operator resolves to on a receiver type: the search phase 3 made when it resolved it (LhsAndRhsAssignmentOrError,StatementOrError) - the operator by its written name, with the argument's type when it has one.THE first of several operators that is a different spelling of the same runtime operator as another (D59,SameRuntimeOperator).THE type of a method's single parameter, when it has exactly one - e.g.The super CLASS chain above an aggregate, nearest first - the walk every "operator above" question shares (NearestOperatorAbove).