Uses of Class
org.ek9lang.compiler.symbols.MethodSymbol
Packages that use MethodSymbol
Package
Description
Common parts of processing that can be reused across various phases.
E - Initial Symbol definition by traversing the 'ANTLR' - 'AST'.
F - Resolution of Explicitly Defined Type Symbols - at this point phase3 processing should have defined
most of the explicitly defined symbols, so they should be resolvable.
G - Full Symbol Resolution can now take place.
H - Generic/Parameterised types can have their methods checked when used in specific contexts.
I - PRE Intermediate Representation generation checks.
K - Intermediate Representation Generation.
Synthetic operator and method generation for EK9.
Used primarily to hold structures that are related to searching for symbols.
Contains critical general components used in the
Ek9Compiler listeners.
This is the main source of EK9 Symbols used within the compiler.
-
Uses of MethodSymbol in org.ek9lang.compiler.common
Classes in org.ek9lang.compiler.common that implement interfaces with type arguments of type MethodSymbolModifier and TypeClassDescriptionclassChecks if the body of a method/operator is appropriate.final classTHE close operator of an aggregate: the oneoperator closea call tocloseresolves to (its own, or inherited), or empty when it has none.classChecks for the containing construct type and whether it is marked as abstract or not.final classTHE ORDERING operator family test:<,<=,>,>=and<=>- each delegates (directly, or via DerivedComparisonGenerator) to<=>, so each needs the receiver AND every field type to be orderable.final classTHE checks every method and operator declaration gets - call this, never the rules one by one (front-end rationalisation F12/D5, Steve 2026-10-03).classChecks for both abstract and override.classCheck trait specifics on constructors/methods/operators, Allowing missing body but marking as abstract.classCheck trait specifics on methods/operators.Methods in org.ek9lang.compiler.common that return MethodSymbolModifier and TypeMethodDescriptionMethodAndAggregateData.methodSymbol()Returns the value of themethodSymbolrecord component.Methods in org.ek9lang.compiler.common that return types with arguments of type MethodSymbolModifier and TypeMethodDescriptionCloseOperatorOf.apply(IAggregateSymbol aggregate) ScopeStack.traverseBackUpStackToEnclosingMethod()Navigate back up the scope stack to find the first enclosing method (there may not be one).Methods in org.ek9lang.compiler.common with parameters of type MethodSymbolModifier and TypeMethodDescriptionvoidAppropriateBodyOrError.accept(MethodSymbol methodSymbol, EK9Parser.OperationDetailsContext ctx) voidContextSupportsAbstractMethodOrError.accept(MethodSymbol methodSymbol, org.antlr.v4.runtime.ParserRuleContext ctx) voidOperationDeclarationChecks.accept(MethodSymbol operation, org.antlr.v4.runtime.ParserRuleContext declaration) Check a method or operator declaration.voidOverrideOrAbstractOrError.accept(MethodSymbol methodSymbol) voidProcessTraitMethodOrError.accept(MethodSymbol method, EK9Parser.OperationDetailsContext ctx) voidTraitMethodAcceptableOrError.accept(MethodSymbol method, EK9Parser.OperationDetailsContext ctx) OperatorMap.resolvedMethodName(MethodSymbol methodSymbol) THE canonical resolver from an operatorMethodSymbolto its backend method name, arity-aware (splits"-"into_negate/_subby the symbol's own parameter count — seeOperatorMap.getForward(String, int)).booleanIsOrderingOperator.test(MethodSymbol operator) Constructors in org.ek9lang.compiler.common with parameters of type MethodSymbolModifierConstructorDescriptionMethodAndAggregateData(MethodSymbol methodSymbol, IAggregateSymbol aggregateSymbol) Creates an instance of aMethodAndAggregateDatarecord class. -
Uses of MethodSymbol in org.ek9lang.compiler.phase1
Classes in org.ek9lang.compiler.phase1 that implement interfaces with type arguments of type MethodSymbolModifier and TypeClassDescription(package private) final classJust checks that named operator methods: mod, rem, abs, sqrt, close, contains, matches, empty, length are not being used as just method names.(package private) final classTypically used for Constructors, but could be used in other contexts where a method is not expected to return anything.(package private) final classAimed at methods in services and a program (which is a method).(package private) final classCheck not dispatcher methods.(package private) final classChecks what only a METHOD declaration can get wrong, in every method context: 'default' on a method that is not a constructor, the access modifier, and the constructor rules.(package private) final classChecks methods from various contexts, typically this is delegated to other functions.Methods in org.ek9lang.compiler.phase1 with parameters of type MethodSymbolModifier and TypeMethodDescriptionvoidMethodNotOperatorOrError.accept(MethodSymbol methodSymbol) voidNoMethodReturnOrError.accept(MethodSymbol methodSymbol, EK9Parser.MethodDeclarationContext ctx) voidNonExtendableMethodOrError.accept(MethodSymbol methodSymbol, EK9Parser.MethodDeclarationContext methodDeclarationContext) voidNotDispatcherMethodOrError.accept(MethodSymbol method, EK9Parser.MethodDeclarationContext ctx) voidProcessCommonMethodsOrError.accept(MethodSymbol method, EK9Parser.MethodDeclarationContext ctx) voidValidMethodOrError.accept(MethodSymbol method, EK9Parser.MethodDeclarationContext ctx) -
Uses of MethodSymbol in org.ek9lang.compiler.phase2
Classes in org.ek9lang.compiler.phase2 that implement interfaces with type arguments of type MethodSymbolModifier and TypeClassDescription(package private) final classA program can only accept specific types of arguments to it.(package private) final classA program can only return an Integer (exit code).(package private) final classChecks each operator: first its operator SEMANTICS - arguments, return type and purity, which need resolved types, so this runs in phase 2 - then what every method and operator declaration is checked for (OperationDeclarationChecks, D5).Methods in org.ek9lang.compiler.phase2 with parameters of type MethodSymbolModifier and TypeMethodDescriptionvoidProgramArgumentsOrError.accept(IToken token, MethodSymbol methodSymbol) voidProgramReturnOrError.accept(IToken token, MethodSymbol methodSymbol) voidValidOperatorOrError.accept(MethodSymbol methodSymbol, EK9Parser.OperatorDeclarationContext ctx) -
Uses of MethodSymbol in org.ek9lang.compiler.phase3
Classes in org.ek9lang.compiler.phase3 that implement interfaces with type arguments of type MethodSymbolModifier and TypeClassDescription(package private) final classRecords, on a conceptualT, that the body being resolved compares its values with<=>(item <=> other.itemoveritem as T?) - one ordering step (D89, D91 step 4).(package private) final classResolves a method (by name and call arguments) within a given scope, emitting an error if it cannot be resolved or is ambiguous.(package private) final classGiven a search for a method from an aggregate - and include supers/traits etc., this function will try and locate the method.(package private) final classAccesses the aggregate and gets just the 'default' operators defined on that aggregate (not any hierarchy).(package private) final classJust focus on resolving 'this' or 'super' in respect to a 'call'.(package private) final classGets the abstract methods and then resolves each to see what the resulting method would be.Methods in org.ek9lang.compiler.phase3 that return MethodSymbolModifier and TypeMethodDescriptionResolveMethodOnAggregateOrError.apply(MethodOnAggregateData data) ResolveMethodOrError.apply(IToken errorLocation, MethodSearchInScope searchOnAggregate) ThisOrSuperCallOrError.apply(EK9Parser.CallContext ctx) AggregateMethodData.methodSymbol()Returns the value of themethodSymbolrecord component.Methods in org.ek9lang.compiler.phase3 that return types with arguments of type MethodSymbolMethods in org.ek9lang.compiler.phase3 with parameters of type MethodSymbolModifier and TypeMethodDescriptionvoidNoteTypeParameterOrdered.accept(IAggregateSymbol owner, MethodSymbol operator) Record the step whenowneris a bareTandoperatoris its<=>.Method parameters in org.ek9lang.compiler.phase3 with type arguments of type MethodSymbolModifier and TypeMethodDescriptionvoidTraverseAbstractMethods.accept(IAggregateSymbol aggregateSymbol, Consumer<MethodSymbol> actionToTake) Constructors in org.ek9lang.compiler.phase3 with parameters of type MethodSymbolModifierConstructorDescription(package private)AggregateMethodData(IToken location, IAggregateSymbol aggregate, MethodSymbol methodSymbol) Creates an instance of aAggregateMethodDatarecord class. -
Uses of MethodSymbol in org.ek9lang.compiler.phase4
Constructor parameters in org.ek9lang.compiler.phase4 with type arguments of type MethodSymbolModifierConstructorDescription(package private)ParameterisedTypeOrError(Ek9Types ek9Types, ErrorListener errorListener, Map<IAggregateSymbol, List<MethodSymbol>> accessedMethodsByT, Function<PossibleGenericSymbol, Optional<ISymbol>> definedParameterisation) Create the check. -
Uses of MethodSymbol in org.ek9lang.compiler.phase5
Classes in org.ek9lang.compiler.phase5 that implement interfaces with type arguments of type MethodSymbolModifier and TypeClassDescription(package private) final classTHE reading of a constructor'sCommonValues.LEAVES_PROPERTIES_UNSETmark: the names of the properties (declared without a value) it leaves unset, following its this(...) chain, as a message shows them; empty when it sets them all.(package private) final classThe names of the properties a constructor leaves unset, as a set; empty when it sets them all.Methods in org.ek9lang.compiler.phase5 with parameters of type MethodSymbolModifier and TypeMethodDescriptionPropertiesLeftUnset.apply(MethodSymbol constructor) PropertiesLeftUnsetNames.apply(MethodSymbol constructor) (package private) CloseableArgumentKeeping.FateCloseableArgumentKeeping.fateOf(MethodSymbol target, int index) What the constructor does with the argument given atindex.(package private) voidCloseableArgumentKeeping.forwards(MethodSymbol constructor, int fromIndex, MethodSymbol target, int toIndex) The constructor passes its own parameter atfromIndextotargetattoIndex: if the target keeps it, so does this constructor.(package private) voidCloseableArgumentKeeping.forwardsOpen(CloseableArgumentKeeping.Holder from, MethodSymbol target, int toIndex) The variable is passed on, whole, totarget's parameter: if that keeps it, so does this callable.(package private) booleanTraitMethodConflictDetector.hasConflict(IAggregateSymbol aggregate, MethodSymbol method) Check if a specific method has a conflict across traits.(package private) voidCloseableArgumentKeeping.keeps(MethodSymbol constructor, int index) The constructor stores its parameter atindexin a closeable property of the object it constructs.(package private) voidCloseableArgumentKeeping.notFresh(MethodSymbol target, int index, ErrorListener errorListener, IToken location, String argument) A construction is given a closeable value that is not new atindex: an error when the constructor keeps that parameter. -
Uses of MethodSymbol in org.ek9lang.compiler.phase7
Methods in org.ek9lang.compiler.phase7 that return MethodSymbolModifier and TypeMethodDescription(package private) MethodSymbolScenario2WrapperHelper.findOriginalMethodOnGenericTemplate(MethodSymbol method) The generic template's method a wrapper method was cloned from - READ what phase 6 encoded, never re-derived.Methods in org.ek9lang.compiler.phase7 that return types with arguments of type MethodSymbolModifier and TypeMethodDescriptionprotected List<MethodSymbol> AggregateDfnGenerator.withFieldSetStatusCarrier(AggregateSymbol aggregateSymbol) The aggregate's own methods, plus the synthetic_fieldSetStatuscarrier if it needs one.Methods in org.ek9lang.compiler.phase7 with parameters of type MethodSymbolModifier and TypeMethodDescription(package private) MethodSymbolScenario2WrapperHelper.findOriginalMethodOnGenericTemplate(MethodSymbol method) The generic template's method a wrapper method was cloned from - READ what phase 6 encoded, never re-derived.(package private) voidScenario2EqualityGenerator.generate(IRConstruct construct, MethodSymbol method) Generate an equality operation that handles wrapper-to-wrapper comparison.(package private) voidScenario2AggregateWrapperGenerator.generateConstructorOperation(IRConstruct construct, MethodSymbol method, String baseTypeName) Generate constructor that creates the delegate instance.(package private) voidScenario2AggregateWrapperGenerator.generateDelegationOperation(IRConstruct construct, MethodSymbol method, String baseTypeName) Generate a delegation operation for a single method.(package private) voidScenario2AggregateWrapperGenerator.generateFunctionAcceptingMethod(IRConstruct construct, MethodSymbol method, String baseTypeName) Generate inline implementation for methods that accept function wrapper types.Scenario2WrapperHelper.getBaseMethodParameterTypes(MethodSymbol method) Get the parameter types from the BASE generic type's method, not the substituted version.(package private) StringScenario2WrapperHelper.getBaseMethodReturnType(MethodSymbol method) Get the return type from the BASE generic type's method, not the substituted version.(package private) booleanScenario2AggregateWrapperGenerator.isCallbackInvocationMethod(MethodSymbol method) Detect callback-invocation methods: methods whose contract is "invoke the supplied function on the contained value".(package private) booleanScenario2EqualityGenerator.isEqualityOperation(MethodSymbol method) Check if a method is an equality operation that needs special argument handling.Method parameters in org.ek9lang.compiler.phase7 with type arguments of type MethodSymbolModifier and TypeMethodDescription(package private) voidDispatchTablePass.generate(Map<MethodSymbol, OperationInstr> operationsMap, AggregateSymbol aggregateSymbol, SharedThreadContext<CompilableProgram> compilableProgramAccess) -
Uses of MethodSymbol in org.ek9lang.compiler.phase7.calls
Methods in org.ek9lang.compiler.phase7.calls with parameters of type MethodSymbolModifier and TypeMethodDescriptionstatic ChainedCallDispatchChainedCallDispatch.of(MethodSymbol toBeCalled, String receiverTemp, ISymbol receiverType, boolean isExplicitTraitTypeRef, boolean isSuperCall, IRGenerationContext stackContext) Decide how a chained call totoBeCalledonreceiverTypeis dispatched. -
Uses of MethodSymbol in org.ek9lang.compiler.phase7.generator
Methods in org.ek9lang.compiler.phase7.generator that return MethodSymbolModifier and TypeMethodDescriptionTerminalSetup.resolvedPipeMethod()Returns the value of theresolvedPipeMethodrecord component.Constructors in org.ek9lang.compiler.phase7.generator with parameters of type MethodSymbolModifierConstructorDescription(package private)TerminalSetup(String variable, IAggregateSymbol type, MethodSymbol resolvedPipeMethod, ISymbol consumesType) Creates an instance of aTerminalSetuprecord class. -
Uses of MethodSymbol in org.ek9lang.compiler.phase7.support
Classes in org.ek9lang.compiler.phase7.support that implement interfaces with type arguments of type MethodSymbolModifier and TypeClassDescriptionclassLocates the textBodyDeclaration parse context for a given text method symbol.Methods in org.ek9lang.compiler.phase7.support that return MethodSymbolModifier and TypeMethodDescriptionFunctionMemberSymbols.call(FunctionSymbol function, IFunctionSymbol signature) The function's_callmethod: pure and abstract as the function is, with the parameters and the return ofsignature- the function itself, or a dynamic function's super function.FunctionMemberSymbols.constructor(FunctionSymbol function, boolean pure, List<ISymbol> parameters) The function's constructor, returning the function's own type.FunctionMemberSymbols.isSet(FunctionSymbol function, ISymbol booleanType) The function's?operator: pure, returningBoolean rtn- a function is always set.MethodResolutionResult.methodSymbol()Returns the value of themethodSymbolrecord component.Methods in org.ek9lang.compiler.phase7.support with parameters of type MethodSymbolModifier and TypeMethodDescriptionTextBodyDetailContextOrError.apply(MethodSymbol method, EK9Parser.TextDeclarationContext ctx) BodiesInAggregateParts.bodyOf(MethodSymbol method) BodiesInServiceDeclaration.bodyOf(MethodSymbol method) ClonedBodiesInAggregateParts.bodyOf(MethodSymbol method) OperationBodyLocator.bodyOf(MethodSymbol method) The written body ofmethod, or empty when it has none to generate from.Constructors in org.ek9lang.compiler.phase7.support with parameters of type MethodSymbolModifierConstructorDescriptionMethodResolutionResult(MethodSymbol methodSymbol, double matchPercentage, boolean requiresPromotion) Creates an instance of aMethodResolutionResultrecord class. -
Uses of MethodSymbol in org.ek9lang.compiler.phase7.synthesis
Classes in org.ek9lang.compiler.phase7.synthesis that implement interfaces with type arguments of type MethodSymbolModifier and TypeClassDescriptionfinal classCreates the synthetic_fieldSetStatusmethod symbol used as an IR carrier.final classCreates the DETACHED method symbols a copy owner's IR carries for a copy through a super-typed reference (PolymorphicCopy, Q5b): the generated_copyAccepts(target as Any) <- Booleanand one:=:override per inherited:=:(Super)signature.final classCreates the DETACHED method symbols a type with its own sameness carries for a comparison through a super-typed reference (D24 rule 3,OverriddenSamenessSignatures): one==or<=>override per inherited signature taking a super.Methods in org.ek9lang.compiler.phase7.synthesis that return types with arguments of type MethodSymbolModifier and TypeMethodDescriptionFieldSetStatusSymbolGenerator.apply(AggregateSymbol aggregateSymbol, ISymbol bitsType) Create the detached_fieldSetStatuscarrier for this aggregate, if it should have one.PolymorphicCopySymbolGenerator.apply(AggregateSymbol aggregateSymbol, Ek9Types ek9Types) The detached carriers for this aggregate - empty for a still-generic template and for anything that is not a copy owner needing them.SamenessOverrideSymbolGenerator.apply(AggregateSymbol aggregateSymbol, Ek9Types ek9Types) The detached overrides for this aggregate - empty for a still-generic template and for a type with no sameness of its own below another.protected Optional<MethodSymbol> AbstractSyntheticGenerator.nearestSuperOperator(IAggregateSymbol aggregateSymbol, String operatorName) THE super operator a generated operator calls: the NEAREST declaration above the type, across the whole super chain (NearestOperatorAbove, neverAny's), when it has a body.Methods in org.ek9lang.compiler.phase7.synthesis with parameters of type MethodSymbolModifier and TypeMethodDescriptionprotected StringAbstractSyntheticGenerator.differentTypeLabel(IAggregateSymbol owner, MethodSymbol operator) The "different run-time type" label of a generated sameness comparison that needs THE run-time-type check (SamenessTypeCheck, D24 rule 3, Contract 22), else null - and then nothing is generated for it, so a comparison that needs no check keeps exactly its IR.CloseGenerator.generate(MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) Generate the _close operator IR for the given aggregate.CompareGenerator.generate(MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) Generate the _cmp operator IR for the given aggregate.CopyGenerator.generate(MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) Generate the _copy operator IR for the given aggregate - its own:=:(Owner), or the override of an inherited:=:(Super)signature (PolymorphicCopy, Q5b; told apart by the parameter type).DelegationGenerator.generate(MethodSymbol methodSymbol, AggregateSymbol aggregateSymbol) Generate delegation IR for a synthetic delegation method.DerivedComparisonGenerator.generate(String operatorName, MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) Generate IR for a derived comparison operator.EnumConstructorGenerator.generate(MethodSymbol constructorSymbol, AggregateSymbol aggregateSymbol) Generate a parameterized enum constructor.EnumFirstLastGenerator.generate(String operatorName, MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) Generate the #< or #> operator for an enumeration.EnumIncrementDecrementGenerator.generate(String operatorName, MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) Generate the ++ or -- operator for an enumeration.EnumIteratorGenerator.generate(MethodSymbol methodSymbol, AggregateSymbol aggregateSymbol) Generate the iterator() method for an enumeration.EnumPrimitiveOperatorGenerator.generate(EnumPrimitiveOperatorGenerator.Shape shape, MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) EnumStringParamGenerator.generate(String operatorName, MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) Generate a String-param comparison operator for an enumeration.EqualsGenerator.generate(MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) Generate the _eq operator IR for the given aggregate.FieldSetStatusGenerator.generate(MethodSymbol methodSymbol, AggregateSymbol aggregateSymbol) Generate the _fieldSetStatus method IR for the given aggregate.FunctionIsSetGenerator.generate(MethodSymbol methodSymbol, FunctionSymbol functionSymbol) Generate the _isSet operator IR for the given function.HashCodeGenerator.generate(MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) Generate the _hashcode operator IR for the given aggregate.InheritedDispatcherGenerator.generate(MethodSymbol entryPoint, AggregateSymbol aggregateSymbol) IsSetGenerator.generate(MethodSymbol methodSymbol, AggregateSymbol aggregateSymbol) Generate the _isSet operator IR for the given aggregate.NotEqualsGenerator.generate(MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) Generate the _neq operator IR for the given aggregate.SamenessOverrideGenerator.generate(MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) ToJsonGenerator.generate(MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) Generate the _json operator IR for the given aggregate.ToStringGenerator.generate(MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) Generate the _string operator IR for the given aggregate.CopyGenerator.generateCopyAccepts(MethodSymbol methodSymbol, AggregateSymbol aggregateSymbol) Generate the owner's_copyAccepts(target as Any) <- Boolean: istargetan instance of this owner (a SUBTYPE test - the owner or any class below it)? Asked of the SOURCE of a copy with the copy's target, so a copy runs in full only between objects whose nearest copy owner is the same class.SyntheticOperatorGenerator.generateEnumConstructor(MethodSymbol constructorSymbol, AggregateSymbol aggregateSymbol) Generate IR for a parameterized enum constructor (copy or String).SyntheticOperatorGenerator.generateMethod(MethodSymbol methodSymbol, AggregateSymbol aggregateSymbol) Generate IR for a synthetic regular method (non-operator).SyntheticOperatorGenerator.generateOperator(MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) Generate IR for a synthetic operator.protected AbstractSyntheticGenerator.ScopeSetupAbstractSyntheticGenerator.initializeScope(MethodSymbol operatorSymbol, String scopeLabel, String returnVarName, String returnTypeName) Initialize scope with return variable reference.protected AbstractSyntheticGenerator.ScopeSetupAbstractSyntheticGenerator.initializeScopeNoReturn(MethodSymbol operatorSymbol, String scopeLabel) Initialize scope for void-returning methods (no return variable).(package private) booleanSamenessOverrideGenerator.isOverride(MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) Is this synthetic==or<=>one of the detached overrides - does it take a type other than its owner? A generated sameness always takes exactly its owner. -
Uses of MethodSymbol in org.ek9lang.compiler.search
Classes in org.ek9lang.compiler.search that implement interfaces with type arguments of type MethodSymbolModifier and TypeClassDescriptionclassJust uses the name of a method in the search, to get a list of all possible method name.Methods in org.ek9lang.compiler.search that return MethodSymbolMethods in org.ek9lang.compiler.search that return types with arguments of type MethodSymbolModifier and TypeMethodDescriptionPossibleMatchingMethods.apply(MethodSearchInScope searchOnAggregate) MethodSymbolSearchResult.getSingleBestMatchSymbol()If there is a single best match for the search; then return it.Constructors in org.ek9lang.compiler.search with parameters of type MethodSymbolModifierConstructorDescriptionMethodSymbolSearch(String newName, MethodSymbol methodSymbol) Create a method search given a method symbol, but used a new method name.§ But this does not set the expected type.MethodSymbolSearch(MethodSymbol methodSymbol) Create a method search given a method symbol.PercentageMethodSymbolMatch(MethodSymbol methodSymbol, double percentageMatch) -
Uses of MethodSymbol in org.ek9lang.compiler.support
Classes in org.ek9lang.compiler.support that implement interfaces with type arguments of type MethodSymbolModifier and TypeClassDescriptionfinal classTHE body method of a program: the compiler-made_mainthat holds what was written in the program, and which IS the program wherever a person reads about it.final classTrue when the constructor makes an explicitsuper(...)call (recorded in phase 3).final classRecords that a constructor is THE capture constructor of its dynamic class (IsCaptureConstructor, which is the only reader).(package private) classDeals with normal operators (i.e.final classTHE copy constructor of a type: a PUBLIC constructor taking exactly one argument of EXACTLY that type -Step(Step).final classTHE test of whether a type already has what adefault operatorwould give it - hold one and apply it, do not re-derive it.final classTrue when the constructor delegates to a sibling withthis(...)(recorded in phase 3,ThisOrSuperCallOrError).final classTHE test "this method or constructor takes exactly these parameter types, in this order" - each byisExactSameType, never by assignability, promotion or a cost-based match.final classTHE test "this method or operator takes exactly ONE parameter, and its type is EXACTLY this type" - byisExactSameType, never by assignability.final classTHE mapping from a member of a MONOMORPHISED parameterised type back to the member of the GENERIC it was substituted from.final classTHE mapping from a member of a MONOMORPHISED parameterised type back to the member of the GENERIC it was substituted from.final classTHE "was this entry point synthesised byInheritedDispatcher" (front-end rationalisation D2) - theINHERITED_DISPATCHERsquirrel.final classTHE no-argument constructor of a type, whatever its access -Counter().final classTHE parent declarations a method overrides - hold one and apply it, do not re-derive it.final classTHE parent declarations a method overrides - hold one and apply it, do not re-derive it.final classTHE super's dispatcher entry point that a sub-type's entry point overrides: the super's effective dispatcher method with exactly the same signature - what a synthesisedInheritedDispatcherentry point calls.final classTHE super's dispatcher entry point that a sub-type's entry point overrides: the super's effective dispatcher method with exactly the same signature - what a synthesisedInheritedDispatcherentry point calls.final classTHE test that two DIFFERENTLY SPELT operators are one runtime operator - hold one and ask it, do not re-derive it.final classTHE test that two DIFFERENTLY SPELT operators are one runtime operator - hold one and ask it, do not re-derive it.final classTrue whenmethodtakes exactly the types ofvariables(VariableTypes), in order (ExactParameterTypes); false when any of the variables has no type.final classTrue when the constructor relies on the hidden implicitsuper(): it neither delegates withthis(...)(DelegatesWithThis) nor callssuper(...)(CallsSuperExplicitly).Methods in org.ek9lang.compiler.support that return MethodSymbolModifier and TypeMethodDescriptionAggregateManipulator.addComparatorOperator(IAggregateSymbol aggregateSymbol, String comparatorType, Optional<ISymbol> returnType) Adds a form of a comparison operator.AggregateManipulator.addConstructor(AggregateSymbol t, Optional<ISymbol> s) Add another constructor to type t, but passing in an s as the value in the construction.AggregateManipulator.addConstructor(AggregateSymbol t, ISymbol s) Add a constructor to the type aggregate with a particular parameter.AggregateManipulator.addConstructor(IAggregateSymbol t) Create a new constructor for the aggregate with no params.AggregateManipulator.addConstructor(IAggregateSymbol aggregateSymbol, List<ISymbol> constructorArguments, boolean synthetic, boolean markedPure) AggregateManipulator.addPublicMethod(AggregateSymbol aggregate, String methodName, List<ISymbol> methodParameters, Optional<ISymbol> returnType) Just add a method to an aggregate with the name and parameters and return type.AggregateManipulator.addPurePublicSimpleOperator(IAggregateSymbol aggregateSymbol, String methodName, Optional<ISymbol> returnType) Adds a simple operator, that is 'pure' (no side effects) and accepts no parameters, but just returns a value.CheckAndPopulateOperator.apply(EK9Parser.OperatorDeclarationContext ctx, IAggregateSymbol aggregate) AggregateManipulator.createMutatingVoidOperator(IAggregateSymbol aggregateSymbol, String operatorName) Creates a mutating void operator with no parameters.AggregateManipulator.createMutatorOperator(IAggregateSymbol aggregateSymbol, String operatorType) Create an operator of the name supplied.AggregateManipulator.createMutatorOperatorReturnVoid(IAggregateSymbol aggregateSymbol, String operatorType) Create an operator of the name supplied.AggregateManipulator.createOperator(IAggregateSymbol aggregateSymbol, String operatorType, boolean isPure) Create an operator of the name supplied.AggregateManipulator.createPureAcceptSameTypeOperatorAndReturnType(IAggregateSymbol aggregateSymbol, String comparatorType, Optional<ISymbol> returnType) Creates a pure method with an argument the same as the main type.AggregateManipulator.createPureArgumentOperatorAndReturnType(IAggregateSymbol aggregateSymbol, IAggregateSymbol arg0, String comparatorType, Optional<ISymbol> returnType) Creates a pure method with an argument of a different type as the main type.AggregateManipulator.createPurePublicReturnSameTypeMethod(IAggregateSymbol aggregateSymbol, String methodName) AggregateManipulator.createPurePublicSimpleOperator(IAggregateSymbol aggregateSymbol, String methodName, Optional<ISymbol> returnType) Just creates a public operator with the name specified.(package private) MethodSymbolOperatorFactory.getDefaultOperator(IAggregateSymbol aggregate, String operator) DispatcherWinner.Selection.handler()Returns the value of thehandlerrecord component.OperationFactory.newMethod(EK9Parser.MethodDeclarationContext ctx, String methodName, IScopedSymbol scopedSymbol) Create a new method with a specific name.OperationFactory.newMethod(EK9Parser.MethodDeclarationContext ctx, IScopedSymbol scopedSymbol) Create a new method that represents an EK9 class/component method.SymbolFactory.newMethod(EK9Parser.MethodDeclarationContext ctx, String methodName, IScopedSymbol scopedSymbol) Create a new method with a specific name.SymbolFactory.newMethod(EK9Parser.MethodDeclarationContext ctx, IScopedSymbol scopedSymbol) Create a new method that represents an EK9 class/component method.OperationFactory.newOperator(EK9Parser.OperatorDeclarationContext ctx, IAggregateSymbol aggregate) Create a new aggregate that represents an EK9 operator, uses a method for this.SymbolFactory.newOperator(EK9Parser.OperatorDeclarationContext ctx, IAggregateSymbol aggregate) Create a new aggregate that represents an EK9 operator, uses a method for this.SymbolFactory.newTextBody(EK9Parser.TextBodyDeclarationContext ctx, IScope scope) Create a new aggregate that represents an EK9 text body - this is represented by a method.TextFactory.newTextBody(EK9Parser.TextBodyDeclarationContext ctx, IScope scope) ConceptualAccess.OrderingUse.operator()Returns the value of theoperatorrecord component.Methods in org.ek9lang.compiler.support that return types with arguments of type MethodSymbolModifier and TypeMethodDescriptionThe body method of a program - empty when the symbol is not a program.CopyConstructor.apply(IAggregateSymbol type) The public copy constructor oftype, if it has one.DefaultOperatorCoverage.apply(IAggregateSymbol aggregate, String operator) The type's own operator that already servesdefault operator <operator>, if any.GenericTemplateMember.apply(MethodSymbol method) The generic's own method this one was substituted from.NoArgumentConstructor.apply(IAggregateSymbol type) The no-argument constructor oftype, if it has one (private, protected or public).OverriddenDeclarations.apply(IAggregateSymbol aggregate, MethodSymbol method) Every parent declaration with exactly this method's signature - at most one per parent - private ones included: a private parent member is not inherited, so not overridden, and the caller decides what that means.OverriddenEntryPoint.apply(IAggregateSymbol aggregate, MethodSymbol entryPoint) DispatcherHandlers.collectFor(IAggregateSymbol aggregate, MethodSymbol dispatcher) The handlers fordispatcheronaggregate: every non-abstract, non-constructor, non-operator, non-dispatcher method across the inheritance chain with the same name and arity.DispatcherHandlers.entryPointsOf(IAggregateSymbol aggregate) THE dispatcher entry points of an aggregate: every non-operator method markedas dispatcher, drawn from the FULL inheritance chain.AggregateManipulator.getAllPossibleDefaultOperators(IAggregateSymbol aggregate) Provides all the possible default operators.(package private) List<MethodSymbol> OperatorFactory.getAllPossibleDefaultOperators(IAggregateSymbol aggregate) (package private) List<MethodSymbol> OperatorFactory.getAllPossibleSyntheticOperators(IAggregateSymbol aggregate) AggregateManipulator.getDefaultOperator(IAggregateSymbol aggregate, String operator) If the operator provided can be defaulted then a Method symbol with the correct signature will be returned.protected Consumer<MethodSymbol> CommonFactory.getDefaultOperatorSymbolInitializer(Consumer<ISymbol> initialise) UnsetKeepingOperator.keepingUnset(ISymbol receiverType, String operator, Optional<ISymbol> argumentType) AsOperatorResolvedOnthenKeepsUnset: the resolved operator, only when it keeps an unset receiver unset.DefaultedComparisonDelegate.Resolver.of(MethodSymbol operator) The operator a generated comparison delegates to, resolved on the type (its own, a super's or a trait's).Methods in org.ek9lang.compiler.support with parameters of type MethodSymbolModifier and TypeMethodDescriptionvoidCaptureConstructorMarker.accept(MethodSymbol constructor) GenericTemplateMember.apply(MethodSymbol method) The generic's own method this one was substituted from.OverriddenDeclarations.apply(IAggregateSymbol aggregate, MethodSymbol method) Every parent declaration with exactly this method's signature - at most one per parent - private ones included: a private parent member is not inherited, so not overridden, and the caller decides what that means.OverriddenEntryPoint.apply(IAggregateSymbol aggregate, MethodSymbol entryPoint) DispatcherHandlers.collectFor(IAggregateSymbol aggregate, MethodSymbol dispatcher) The handlers fordispatcheronaggregate: every non-abstract, non-constructor, non-operator, non-dispatcher method across the inheritance chain with the same name and arity.voidSymbolFactory.ensureTextBodyIsInSuper(MethodSymbol textMethodSymbol) Ensures that any method in a specific text block is always added to the base text for that component.voidTextFactory.ensureTextBodyIsInSuper(MethodSymbol textMethodSymbol) Ensures that any method in a specific text block is always added to the base text for that component.static ConstructionStepsConstructionSteps.of(MethodSymbol constructor) The steps this constructor takes before its body.DefaultedComparisonDelegate.Resolver.of(MethodSymbol operator) The operator a generated comparison delegates to, resolved on the type (its own, a super's or a trait's).booleanCallsSuperExplicitly.test(MethodSymbol constructor) booleanDelegatesWithThis.test(MethodSymbol constructor) booleanExactParameterTypes.test(MethodSymbol method, List<ISymbol> types) True whenmethodtakes exactly as many parameters astypes, each exactly the type at its position.booleanExactSingleParameter.test(MethodSymbol method, ISymbol type) True whenmethodtakes exactly one parameter whose type is exactlytype.booleanIsInheritedDispatcherEntryPoint.test(MethodSymbol method) booleanSameRuntimeOperator.test(MethodSymbol first, MethodSymbol second) Are these two operators, spelt differently, one runtime operator with the same parameter types?booleanTakesExactlyTheTypesOf.test(MethodSymbol method, List<ISymbol> variables) booleanUsesImplicitSuperCall.test(MethodSymbol constructor) Method parameters in org.ek9lang.compiler.support with type arguments of type MethodSymbolModifier and TypeMethodDescriptionvoidSymbolMatcher.addMatchesToResult(MethodSymbolSearchResult result, SymbolSearch criteria, List<MethodSymbol> methodSymbols) Match the search criteria against one or more symbol methods.DispatcherReachableTypes.all(ISymbol baseType, List<MethodSymbol> handlers, int paramIndex, ConcreteSubtypeFinder finder) AsDispatcherReachableTypes.concrete(ISymbol, List, int, ConcreteSubtypeFinder), but keeping abstract types.DispatcherReachableTypes.concrete(ISymbol baseType, List<MethodSymbol> handlers, int paramIndex, ConcreteSubtypeFinder finder) The types a value at this parameter could actually HAVE at runtime.DispatcherWinner.forParam(ISymbol concreteType, int paramIndex, List<MethodSymbol> handlers) The winning handler for a concrete type at one parameter position.DispatcherWinner.forParamPair(ISymbol type0, ISymbol type1, List<MethodSymbol> handlers) The winning handler for a pair of concrete types across the first two parameters.Constructors in org.ek9lang.compiler.support with parameters of type MethodSymbolModifierConstructorDescriptionOrderingUse(ISymbol type, ConceptualAccess.OrderingKind kind, MethodSymbol operator) Creates an instance of aOrderingUserecord class.Selection(MethodSymbol handler, double cost) Creates an instance of aSelectionrecord class. -
Uses of MethodSymbol in org.ek9lang.compiler.support.closeables
Classes in org.ek9lang.compiler.support.closeables that implement interfaces with type arguments of type MethodSymbolModifier and TypeClassDescriptionfinal classEvery type a close of this type reaches through its chain - the static types of the closed fields and the owner of the parent close - for the call graph (each is called by the generated close).final classThe close operator this type declares itself, if any: own scope, not abstract, not a delegation proxy.final classTrue when the method is a type's close operator.final classTrue when the operator is a close the developer asked for withdefault operator close.(package private) final classThe no-argument close operator in the type's own scope, whatever it is (abstract, proxy or written).final classThe close of the nearest super CLASS that has one, when it is not abstract.Methods in org.ek9lang.compiler.support.closeables that return types with arguments of type MethodSymbolModifier and TypeMethodDescriptionChainedCloses.apply(IAggregateSymbol aggregate) DeclaredClose.apply(IAggregateSymbol aggregate) OwnCloseOperator.apply(IAggregateSymbol aggregate) ParentClose.apply(IAggregateSymbol aggregate) CloseSteps.parentClose()Returns the value of theparentCloserecord component.Methods in org.ek9lang.compiler.support.closeables with parameters of type MethodSymbolModifier and TypeMethodDescriptionbooleanIsCloseOperator.test(MethodSymbol method) booleanIsDefaultedClose.test(MethodSymbol method) Constructor parameters in org.ek9lang.compiler.support.closeables with type arguments of type MethodSymbolModifierConstructorDescriptionCloseSteps(List<ISymbol> closed, Optional<MethodSymbol> parentClose) Creates an instance of aCloseStepsrecord class. -
Uses of MethodSymbol in org.ek9lang.compiler.support.conceptual
Classes in org.ek9lang.compiler.support.conceptual that implement interfaces with type arguments of type MethodSymbolModifier and TypeClassDescriptionfinal classfinal classTHE "did the body use the member from a pure scope" (NoteConceptualAccess).final classTHE "does the generic's body use this member ofT" (NoteConceptualAccess).final classTHE note that the generic's body uses this member of its conceptualT(ConceptualAccess), and - when the body is in a pure scope - that too: the concrete member must then be pure (a conceptual constructor's own purity is meaningless - it is synthetic onT).final classTHE note of an operator the body used onowner, but only whenownerIS a conceptual type parameter - a concrete type needs no deferred check.final classTHE note of the copy constructor aforrange overTwill use (NoteConceptualAccess, and marked as the range's): which one runs, and whether it is pure, is only known at parameterisation.Methods in org.ek9lang.compiler.support.conceptual with parameters of type MethodSymbolModifier and TypeMethodDescriptionvoidNoteConceptualAccess.accept(MethodSymbol member, Boolean inPureScope) voidNoteIfConceptual.accept(IAggregateSymbol owner, MethodSymbol operator) voidNoteRangeCopyConstructor.accept(MethodSymbol copyConstructor, Boolean inPureScope) voidNoteOrderingUse.note(IAggregateSymbol owner, MethodSymbol operator, boolean writtenAsAnOperatorCall) Note the ordering use, when the operator is an ordering operator.booleanIsAccessedByRange.test(MethodSymbol member) booleanIsAccessedInPureScope.test(MethodSymbol member) booleanIsConceptuallyAccessed.test(MethodSymbol member) -
Uses of MethodSymbol in org.ek9lang.compiler.support.copy
Classes in org.ek9lang.compiler.support.copy that implement interfaces with type arguments of type MethodSymbolModifier and TypeClassDescriptionfinal classTHE inherited:=:(Super)signatures a GENERATED copy owner overrides (Q5b,PolymorphicCopy): every:=:declared up its super CLASS chain (AllOperatorsAbove) whose single parameter is a super type of the owner - one per distinct parameter type, nearest first - unless the owner itself already declares that signature.final classTHE "is this:=:generated rather than written by hand" (default operator :=:, or the baredefault operator, and not abstract).final classTHE self copy of an aggregate: the:=:it declares in its OWN scope that takes the aggregate itself (PolymorphicCopy).Methods in org.ek9lang.compiler.support.copy that return types with arguments of type MethodSymbolModifier and TypeMethodDescriptionInheritedCopySignatures.apply(IAggregateSymbol owner, ISymbol ek9Any) SelfCopy.apply(IAggregateSymbol aggregate) Methods in org.ek9lang.compiler.support.copy with parameters of type MethodSymbol -
Uses of MethodSymbol in org.ek9lang.compiler.support.operators
Classes in org.ek9lang.compiler.support.operators that implement interfaces with type arguments of type MethodSymbolModifier and TypeClassDescriptionfinal classTHE "can the existing operator be called with the candidate default's arguments?" - each candidate parameter type assignable to the existing one's, same count.final classTHE "can the existing operator be called with the candidate default's arguments?" - each candidate parameter type assignable to the existing one's, same count.final classTHE 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).final classTHE "is this '?' the one synthesised for a field-less type (FIELDLESS_IS_SET)?" of Q-COMPONENT-? (FieldlessIsSet).final classTHE "does this RESOLVED operator keep an unset receiver unset, whatever its argument?" - theKEEPS_UNSETsquirrel the bootstrap reads from@Ek9Operator(keepsUnset = true)(seeUnsetKeepingOperator).final classTHE 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).final classTHE nearest declaration above an aggregate that a level test finds - asked of each super class in turn, nearest first (SuperClassChain).final classTHE nearest declaration above an aggregate that a level test finds - asked of each super class in turn, nearest first (SuperClassChain).final classTHE type that declares an operator - its OWNER, which a generated super call names (Contract 19,NearestOperatorAbove).final classTHE first of several operators that is a different spelling of the same runtime operator as another (D59,SameRuntimeOperator).final classTHE first of several operators that is a different spelling of the same runtime operator as another (D59,SameRuntimeOperator).final classTHE first of several operators that is a different spelling of the same runtime operator as another (D59,SameRuntimeOperator).final classTHE type of a method's single parameter, when it has exactly one - e.g.Methods in org.ek9lang.compiler.support.operators that return types with arguments of type MethodSymbolModifier and TypeMethodDescriptionDeclaredOperator.apply(IAggregateSymbol aggregate, String operatorName) NearestAbove.apply(IAggregateSymbol aggregate, Function<IAggregateSymbol, Optional<MethodSymbol>> declaredOn) OtherSpellingIn.apply(MethodSymbol operator, Iterable<MethodSymbol> candidates) The first ofcandidatesthat is a different spelling of the same runtime operator asoperator.AllOperatorsAbove.of(IAggregateSymbol aggregate, String operatorName, ISymbol ek9Any) Every declaration above, nearest level first.NearestOperatorAbove.of(IAggregateSymbol aggregate, String operatorName, ISymbol ek9Any) The nearest operator calledoperatorNamedeclared ABOVE the aggregate, neverAny's:Anydeclares?$$$#?==<=>for every type, which says nothing about a hierarchy's data.NearestSelfComparisonAbove.of(IAggregateSymbol aggregate, String operatorName, ISymbol ek9Any) The nearest self-comparison above, if any.The operatoroperatorresolves to onreceiverTypegiven an argument ofargumentType(empty for++and--), when it resolves to exactly one.Methods in org.ek9lang.compiler.support.operators with parameters of type MethodSymbolModifier and TypeMethodDescriptionNarrowedReturnTypes.apply(IAggregateSymbol aggregate, MethodSymbol method) Empty for a method that overrides nothing or keeps every parent's return type.OperatorOwner.apply(MethodSymbol operator) OtherSpellingIn.apply(MethodSymbol operator, Iterable<MethodSymbol> candidates) The first ofcandidatesthat is a different spelling of the same runtime operator asoperator.SingleParameterType.apply(MethodSymbol method) booleanCallableWithArgumentsOf.test(MethodSymbol existing, MethodSymbol candidate) True when the existing operator can be called with the candidate default's arguments.booleanIsSynthesisedIsSet.test(MethodSymbol method) booleanKeepsUnset.test(MethodSymbol operator) Method parameters in org.ek9lang.compiler.support.operators with type arguments of type MethodSymbolModifier and TypeMethodDescriptionNearestAbove.apply(IAggregateSymbol aggregate, Function<IAggregateSymbol, Optional<MethodSymbol>> declaredOn) OtherSpellingIn.apply(MethodSymbol operator, Iterable<MethodSymbol> candidates) The first ofcandidatesthat is a different spelling of the same runtime operator asoperator. -
Uses of MethodSymbol in org.ek9lang.compiler.support.retention
Classes in org.ek9lang.compiler.support.retention that implement interfaces with type arguments of type MethodSymbolModifier and TypeClassDescriptionfinal classRecord, on a user method or operator, that what it returns is (part of) its receiver (ReturnRetention.RECEIVER_INTERIOR, exactly the text a built-in declares).Methods in org.ek9lang.compiler.support.retention with parameters of type MethodSymbol -
Uses of MethodSymbol in org.ek9lang.compiler.support.sameness
Classes in org.ek9lang.compiler.support.sameness that implement interfaces with type arguments of type MethodSymbolModifier and TypeClassDescription(package private) final classThe nearest concrete<=>above the type that compares its level with itself, read from the methods as DECLARED - a retracted one included (getAllNonAbstractMethodsInThisScopeOnlydoes not filter the retraction), soOrderingAvailability.orderingSurvives(MethodSymbol, ISymbol)gives the same answer whichever types phase 5 has already visited.(package private) final classThe concrete<=>this one LEVEL declares comparing itself with itself, read as DECLARED (a retracted one included), preferring the one taking exactly the level.final classTHE sameness a type itself declares (B18) - its own non-abstract<=>comparing it with itself, else its==- hand-written or defaulted, never one GENERATED from it (IsGeneratedFromSameness).final classTHE sameness a type INHERITS - from its super chain (stopping beforeAny) or any of its traits (its own, a super's, a trait's trait) - if any, sealed or not.final classTHE "is this a comparison B18 generates from the sameness?": a<><<=>>=comparing the owner with itself (IsSelfComparison) - always generated, never written.final classTHE "is this an explicitdefault operator X", as opposed to one added by the baredefault operatoror one generated from the sameness (IsGeneratedFromSameness).final classTHE "is this a comparison GENERATED from the type's sameness" (B18 - never written or requested).final classTHE "did the developer write this operator's body" (notdefault operator) - the sameness rules' meaning of hand-written (B18, D24).final classTHE "is this the zero-argument#?" - the hash code that goes with a type's sameness (B18).final classTHE "is this a declaration of its owner's sameness?" (B18): a<=>or==comparing the owner with itself (IsSelfComparison).final classTHE "does this operator compare its owner with ITSELF?" of B18 (Sameness): an operator taking exactly one argument of a type the owner is assignable to.final classTHE sameness a type would inherit through its super CLASS chain (D24 follow-up Q5, Steve 2026-10-20): the nearest concrete<=>comparing its owner with itself (NearestSelfComparisonAbove) - the super is ORDERED - else the nearest such==- the super is EQUATABLE only.final classTHE sameness a type that declares none of its own gets from its super CLASS chain once PRE_IR_CHECKS has run (D55):NearestSamenessAbove, but a<=>that does not survive (OrderingAvailability.orderingSurvives(MethodSymbol, ISymbol)) is passed over for the nearest==- the super is EQUATABLE only.final classTHE test of whether a sameness comparison - the type's==or<=>, hand-written or generated, or a generated==/<>answered by its<=>- needs the run-time-type check in front of it (D24 rule 3, Contract 22): values of different run-time types are never the same.final classTHE inherited sameness signatures a type with its own sameness OVERRIDES (D24 rule 3; N07 - the object decides, never the reference): for each of==and<=>the type declares taking exactly itself, every same-named comparison above it on its super CLASS chain (AllOperatorsAbove) that takes a type the owner is assignable to and that the owner does not declare itself (OwnOperatorTaking).final classTHE SEALED sameness a type inherits (D24 rule 1) - one written by hand on an abstract base or a trait above it (IsHierarchyWideSameness) - if any.Methods in org.ek9lang.compiler.support.sameness that return MethodSymbolModifier and TypeMethodDescriptionSamenessAbove.Found.operator()Returns the value of theoperatorrecord component.Methods in org.ek9lang.compiler.support.sameness that return types with arguments of type MethodSymbolModifier and TypeMethodDescriptionDeclaredOrderingAbove.apply(IAggregateSymbol owner, ISymbol ek9Any) DeclaredOrderingAt.apply(IAggregateSymbol level, ISymbol ek9Any) DeclaredSameness.apply(IAggregateSymbol owner) InheritedSameness.apply(IAggregateSymbol aggregate, ISymbol ek9Any) NearestSamenessAbove.apply(IAggregateSymbol owner, ISymbol ek9Any) NearestSurvivingSamenessAbove.apply(IAggregateSymbol owner, ISymbol ek9Any) OverriddenSamenessSignatures.apply(IAggregateSymbol owner, ISymbol ek9Any) SealedSameness.apply(IAggregateSymbol aggregate, ISymbol ek9Any) OwnOperatorTaking.of(IAggregateSymbol owner, String name, ISymbol parameterType) The owner's own non-abstract operator of this name taking exactly that one type, if any.OrderingAvailability.withdrawnOrdering(IAggregateSymbol type, ISymbol ek9Any) THE "does a use of this type's<=>rely on an ordering that is withdrawn?" (D58, Steve 2026-10-21): the nearest<=>declared on the type or above it - the one phase 3 resolved the use to - is one the baredefault operatoradded, and it does not survive (OrderingAvailability.orderingSurvives(MethodSymbol, ISymbol)).Methods in org.ek9lang.compiler.support.sameness with parameters of type MethodSymbolModifier and TypeMethodDescriptionbooleanOrderingAvailability.isDegenerateDefaultedOrdering(MethodSymbol operator, ISymbol ek9Any) A defaulted ordering operator on a type whose<=>degenerates because a field cannot be ordered - the case a generic instantiation reaches without any retraction marker:Box of List(its template'sdefault operator <=>is over aTthat became a List).booleanOrderingAvailability.isRetractedOrdering(MethodSymbol operator, ISymbol ek9Any) Is this operator a BARE ordering operator that phase 5 retracts (OrderingAvailability.bareOrderingRetracted(IAggregateSymbol, ISymbol)of its owner)? Order-independent, so usable from POST_RESOLUTION_CHECKS on: a generic's body that uses<=>or<onT, parameterised with a type whose ordering is retracted, is E07620 at the parameterisation (D58, Steve 2026-10-21).booleanOrderingAvailability.isUnavailableOrdering(MethodSymbol operator, ISymbol ek9Any) THE verdict on a call of an ordering operator written as an operator (first < second, acase < x): the operator it resolved to is one phase 5 retracts (OrderingAvailability.isRetractedOrdering(MethodSymbol, ISymbol)) or one that degenerates (OrderingAvailability.isDegenerateDefaultedOrdering(MethodSymbol, ISymbol)).booleanOrderingAvailability.orderingSurvives(MethodSymbol comparison, ISymbol ek9Any) THE "does this<=>still order values once PRE_IR_CHECKS has run?" (D55, Steve 2026-10-20).booleanIsDerivedComparison.test(IAggregateSymbol owner, MethodSymbol operator) booleanIsExplicitlyDefaulted.test(MethodSymbol operator) booleanIsGeneratedFromSameness.test(MethodSymbol operator) booleanIsHandWrittenOperator.test(MethodSymbol operator) booleanIsHashCodeOperator.test(MethodSymbol operator) booleanIsSamenessOperator.test(IAggregateSymbol owner, MethodSymbol operator) True for a<=>or==comparing the owner with itself - a declaration of its sameness.booleanIsSelfComparison.test(IAggregateSymbol owner, MethodSymbol operator) True for an operator taking exactly one argument of a type the owner is assignable to.booleanNeedsRuntimeTypeCheck.test(IAggregateSymbol owner, MethodSymbol operator) (package private) booleanTakesItself.test(IAggregateSymbol aggregate, MethodSymbol method, String operatorName) OrderingAvailability.unorderedPropertyBehind(MethodSymbol comparison, ISymbol ek9Any) THE reason a bare<=>does not survive: the first property, from the owner ofcomparisonupward through the<=>s each bare one builds on (read as DECLARED, so it answers the same after the retraction), whose type cannot be ordered (OrderingAvailability.isOrderable(IAggregateSymbol, ISymbol)).Constructors in org.ek9lang.compiler.support.sameness with parameters of type MethodSymbolModifierConstructorDescription(package private)Found(IAggregateSymbol level, MethodSymbol operator) Creates an instance of aFoundrecord class. -
Uses of MethodSymbol in org.ek9lang.compiler.symbols
Subclasses of MethodSymbol in org.ek9lang.compiler.symbolsModifier and TypeClassDescriptionclassJust re-uses the bulk of method symbol for when we want to make a symbol that is a call to an actual method.classScope for callable methods (operations) that are part of a Service.classJust re-uses the bulk of method symbol.Methods in org.ek9lang.compiler.symbols that return MethodSymbolModifier and TypeMethodDescriptionprotected MethodSymbolMethodSymbol.cloneIntoMethodSymbol(MethodSymbol newCopy) MethodSymbol.copyMethodProperties(MethodSymbol newCopy) Just copies the properties over.StreamCallSymbol.getResolvedPipeMethod()MethodSymbol.setConstructor(boolean constructor) MethodSymbol.setOperator(boolean operator) Methods in org.ek9lang.compiler.symbols that return types with arguments of type MethodSymbolModifier and TypeMethodDescriptionAggregateSymbol.getAllAbstractMethods()Gets all abstract methods in this aggregate and any super classes.AggregateWithTraitsSymbol.getAllAbstractMethods()Gets all abstract methods in this aggregate and any super classes.default List<MethodSymbol> IAggregateSymbol.getAllAbstractMethods()Get all methods marked as abstract in this or any supers.AggregateSymbol.getAllAbstractMethodsInThisScopeOnly()default List<MethodSymbol> IAggregateSymbol.getAllAbstractMethodsInThisScopeOnly()Get all methods in this scope only that are abstract.AggregateSymbol.getAllEffectiveMethods()AggregateWithTraitsSymbol.getAllEffectiveMethods()default List<MethodSymbol> IAggregateSymbol.getAllEffectiveMethods()Gets all methods that are effective, by this I mean if supers (classes or traits) have the same method name but, it has been overridden then we would only retain the 'overridden' one as that has taken effect.AggregateSymbol.getAllMethodInThisScopeOnly()default List<MethodSymbol> IAggregateSymbol.getAllMethodInThisScopeOnly()All methods abstract and non-abstract in this scope.AggregateSymbol.getAllMethods()AggregateWithTraitsSymbol.getAllMethods()default List<MethodSymbol> IAggregateSymbol.getAllMethods()Get all methods on this and any supers or traits.AggregateSymbol.getAllNonAbstractMethods()AggregateWithTraitsSymbol.getAllNonAbstractMethods()default List<MethodSymbol> IAggregateSymbol.getAllNonAbstractMethods()Get all methods not marked as abstract in this or any supers.AggregateSymbol.getAllNonAbstractMethodsInThisScopeOnly()default List<MethodSymbol> IAggregateSymbol.getAllNonAbstractMethodsInThisScopeOnly()Get all methods in this scope only that are not abstract.AggregateSymbol.getAllOperators()default List<MethodSymbol> IAggregateSymbol.getAllOperators()Get all operators on this and any supers or traits.AggregateSymbol.getConstructors()IAggregateSymbol.getConstructors()A list of all the defined constructors.MethodSymbol.getGenericTemplateMethod()The generic template's method this one was substituted from, or empty when this method was not produced byTypeSubstitution(hand-written source, introspected extern, synthesised).Methods in org.ek9lang.compiler.symbols with parameters of type MethodSymbolModifier and TypeMethodDescriptionprotected MethodSymbolMethodSymbol.cloneIntoMethodSymbol(MethodSymbol newCopy) MethodSymbol.copyMethodProperties(MethodSymbol newCopy) Just copies the properties over.booleanMethodSymbol.hasSameSignatureAs(MethodSymbol toMethod) THE same-signature test: same NAME and exactly the same PARAMETER TYPES, in order.booleanMethodSymbol.isAbstractRequirementMetBy(MethodSymbol implementation) THE "does this implementation meet this abstract requirement" test for a type that inherits both along different routes (Steve, 2026-10-12, decision a): ONE implementation plus any number of abstract declarations of the SAME method is not a conflict - the implementation IS the method.booleanMethodSymbol.isAbstractRequirementOfSameMethodAs(MethodSymbol implementation) The relation half ofMethodSymbol.isAbstractRequirementMetBy(MethodSymbol), without asking whetherimplementationhas a body: this is abstract andimplementationis a declaration of the same method.booleanMethodSymbol.isExactSignatureMatchTo(MethodSymbol toMethod) This method just checks that the signature has exactly the same types as parameters.booleanMethodSymbol.isSameDeclarationAs(MethodSymbol toMethod) THE "is this the very same method declaration" test: the same signature (MethodSymbol.hasSameSignatureAs(MethodSymbol)) declared by the same type (isExactSameTypeof the owning aggregates), or the same symbol.booleanMethodSymbol.isSignatureMatchTo(MethodSymbol toMethod) Does the signature of this method match that of the method passed in.protected booleanAggregateSymbol.methodNotPresent(List<MethodSymbol> defined, MethodSymbol checkMethod) booleanAggregateWithTraitsSymbol.providesThroughDelegate(MethodSymbol method) Does this aggregate (or a super class of it) forwardmethodto a delegate - is it a member of a trait listed withby.voidMethodSymbol.setGenericTemplateMethod(MethodSymbol templateMethod) Record the generic template method this one is the substituted clone of.voidStreamCallSymbol.setResolvedPipeMethod(MethodSymbol resolvedPipeMethod) Method parameters in org.ek9lang.compiler.symbols with type arguments of type MethodSymbolModifier and TypeMethodDescriptionprotected booleanAggregateSymbol.methodNotPresent(List<MethodSymbol> defined, MethodSymbol checkMethod)