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.classChecks for the containing construct type and whether it is marked as abstract or not.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 TypeMethodDescriptionScopeStack.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) static booleanHasRealComparator.isOrderingOperator(MethodSymbol operator) The ORDERING operator family - each delegates (directly, or via DerivedComparisonGenerator) to<=>, so each needs the receiver AND every field type to be orderable.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)).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 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 TypeMethodDescription(package private) static voidRequiredOperatorPresentOrError.noteOperatorAccessedIfConceptualType(IAggregateSymbol aggregate, MethodSymbol operator) We need to know if an operator has been used when employed in a 'T' in the generic type This is needed later so that when a generic type is parameterised we can check each of the types and see which operators have been accessed, then we can ensure the argument to the parameterization has that operator.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(ISymbol ek9Any, ErrorListener errorListener, Map<IAggregateSymbol, List<MethodSymbol>> accessedMethodsByT) Create the check. -
Uses of MethodSymbol in org.ek9lang.compiler.phase5
Methods in org.ek9lang.compiler.phase5 with parameters of type MethodSymbolModifier and TypeMethodDescriptionPropertiesLeftUnset.describe(MethodSymbol constructor) The names of the properties the constructor leaves unset, as a message shows them; empty when it sets them all.(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.keeps(MethodSymbol constructor, int index) The constructor stores its parameter atindexin a closeable property of the object it constructs.PropertiesLeftUnset.namesOf(MethodSymbol constructor) The names of the properties the constructor leaves unset; empty when it sets them all.(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) 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) (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, Scenario2WrapperHelper helper) 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) static voidDispatchTablePass.generate(Map<MethodSymbol, OperationInstr> operationsMap, AggregateSymbol aggregateSymbol, SharedThreadContext<CompilableProgram> compilableProgramAccess) -
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, boolean promotionRequired) 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 Operation details context for a method - or throws a compiler exception.classLocates the Operation details context for a parameterized method by matching sourceToken identity.classLocates the textBodyDeclaration parse context for a given text method symbol.Methods in org.ek9lang.compiler.phase7.support that return MethodSymbolModifier and TypeMethodDescriptionMethodResolutionResult.methodSymbol()Returns the value of themethodSymbolrecord component.Methods in org.ek9lang.compiler.phase7.support with parameters of type MethodSymbolModifier and TypeMethodDescriptionOperationDetailContextOrError.apply(MethodSymbol method, EK9Parser.AggregatePartsContext ctx) ParameterizedOperationDetailContextOrError.apply(MethodSymbol parameterizedMethod, EK9Parser.AggregatePartsContext ctx) TextBodyDetailContextOrError.apply(MethodSymbol method, EK9Parser.TextDeclarationContext ctx) booleanParameterizedOperationDetailContextOrError.hasOperationDetails(MethodSymbol parameterizedMethod, EK9Parser.AggregatePartsContext ctx) Check if a method has operation details (a body) in the parse context.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
Methods in org.ek9lang.compiler.phase7.synthesis that return types with arguments of type MethodSymbolModifier and TypeMethodDescriptionstatic Optional<MethodSymbol> FieldSetStatusSymbolGenerator.createFor(AggregateSymbol aggregateSymbol, ISymbol bitsType) Create the detached_fieldSetStatuscarrier for this aggregate, if it should have one.static List<MethodSymbol> PolymorphicCopySymbolGenerator.createFor(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.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 (InheritedOperators.nearestAbove(IAggregateSymbol, String, ISymbol), neverAny's), when it has a body.Methods in org.ek9lang.compiler.phase7.synthesis with parameters of type MethodSymbolModifier and TypeMethodDescriptionCloseGenerator.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.EnumCompareGenerator.generate(MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) EnumConstructorGenerator.generate(MethodSymbol constructorSymbol, AggregateSymbol aggregateSymbol) Generate a parameterized enum constructor.EnumEqualsGenerator.generate(MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) EnumFirstLastGenerator.generate(String operatorName, MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) Generate the #< or #> operator for an enumeration.EnumHashCodeGenerator.generate(MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) EnumIncrementDecrementGenerator.generate(String operatorName, MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) Generate the ++ or -- operator for an enumeration.EnumIsSetGenerator.generate(MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) EnumIteratorGenerator.generate(MethodSymbol methodSymbol, AggregateSymbol aggregateSymbol) Generate the iterator() method for an enumeration.EnumJsonGenerator.generate(MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) EnumStringGenerator.generate(String methodName, MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) Generate the _string or _promote operator for an enumeration.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.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). -
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 TypeClassDescription(package private) classDeals with normal operators (i.e.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.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) Methods in org.ek9lang.compiler.support that return types with arguments of type MethodSymbolModifier and TypeMethodDescriptionstatic List<MethodSymbol> InheritedOperators.allAbove(IAggregateSymbol aggregate, String operatorName, ISymbol ek9Any) EVERY operator calledoperatorNamedeclared ABOVE the aggregate - each level's own overloads, nearest level first, neverAny's.static List<MethodSymbol> CloseSteps.chainedCloses(IAggregateSymbol aggregate) Every 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).static List<MethodSymbol> 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.static Optional<MethodSymbol> CloseSteps.declaredClose(IAggregateSymbol aggregate) The close operator this type declares itself, if any: own scope, not abstract, not a delegation proxy.static Optional<MethodSymbol> InheritedOperators.declaredOperator(IAggregateSymbol aggregate, String operatorName) The operator calledoperatorNamethis type declares in its OWN scope, preferring the overload that takes the type itself when there are several.static List<MethodSymbol> DispatcherHandlers.entryPointsOf(IAggregateSymbol aggregate) THE dispatcher entry points of an aggregate: every non-operator method markedas dispatcher, drawn from the FULL inheritance chain.static Optional<MethodSymbol> GenericTemplateMember.forMethod(MethodSymbol method) The generic's own method this one was substituted from.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) static Optional<MethodSymbol> Sameness.inheritedSameness(IAggregateSymbol aggregate, ISymbol ek9Any) The concrete sameness this type INHERITS - from its super chain (stopping beforeAny) or any of its traits (its own, a super's, a trait's trait) - if any.static List<MethodSymbol> PolymorphicCopy.inheritedSignatures(IAggregateSymbol owner, ISymbol ek9Any) The inherited:=:(Super)signatures a GENERATED owner overrides: every:=:declared up its super CLASS chain (InheritedOperators.allAbove(IAggregateSymbol, String, ISymbol)) 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.static Optional<MethodSymbol> InheritedOperators.nearestAbove(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.static Optional<MethodSymbol> InheritedOperators.nearestAbove(IAggregateSymbol aggregate, Function<IAggregateSymbol, Optional<MethodSymbol>> declaredOn) The nearest declaration above the aggregate thatdeclaredOnfinds on a level (asked of each super class in turn, nearest first).static Optional<MethodSymbol> CopyConstructor.of(IAggregateSymbol type) The public copy constructor oftype, if it has one.static Optional<MethodSymbol> DefaultedComparisonDelegate.of(IAggregateSymbol aggregate, MethodSymbol operator, ISymbol ek9Any) The operator a generated comparison delegates to, resolved on the type (its own, a super's or a trait's).DefaultedComparisonDelegate.Resolver.of(MethodSymbol operator) The operator a generated comparison delegates to - seeDefaultedComparisonDelegate.of(IAggregateSymbol, MethodSymbol, ISymbol).static List<MethodSymbol> OverriddenDeclarations.of(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.static Optional<MethodSymbol> InheritedDispatcher.overriddenEntryPoint(IAggregateSymbol aggregate, MethodSymbol entryPoint) The super's entry point that a sub-type's entry point overrides: the super's effective dispatcher method with exactly the same signature.static Optional<MethodSymbol> CloseSteps.parentClose(IAggregateSymbol aggregate) The close of the nearest super CLASS that has one, when it is not abstract.CloseSteps.Steps.parentClose()Returns the value of theparentCloserecord component.static Optional<MethodSymbol> PolymorphicCopy.selfCopy(IAggregateSymbol aggregate) The:=:the aggregate declares in its OWN scope that takes the aggregate itself - its self copy.static Optional<MethodSymbol> DefaultOperatorCoverage.servingOwnOperator(IAggregateSymbol aggregate, String operator) The type's own operator that already servesdefault operator <operator>, if any.Methods in org.ek9lang.compiler.support with parameters of type MethodSymbolModifier and TypeMethodDescriptionstatic booleanDefaultOperatorCoverage.accepts(MethodSymbol existing, MethodSymbol candidate) True when the existing operator can be called with the candidate default's arguments.static List<MethodSymbol> 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 Optional<MethodSymbol> GenericTemplateMember.forMethod(MethodSymbol method) The generic's own method this one was substituted from.static booleanCloseSteps.isCloseOperator(MethodSymbol method) True when the method is a type's close operator.static booleanCloseSteps.isDefaultedClose(MethodSymbol method) True when the operator is a close the developer asked for withdefault operator close.static booleanSameness.isDerivedComparison(IAggregateSymbol owner, MethodSymbol operator) True for a<><<=>>=comparing the owner with itself - always generated from the sameness, never written.static booleanSameness.isExplicitlyDefaulted(MethodSymbol operator) True for an explicitdefault operator X, as opposed to one added by the baredefault operator.static booleanPolymorphicCopy.isGenerated(MethodSymbol copy) Is this:=:generated rather than written by hand?static booleanSameness.isGenerated(MethodSymbol operator) True for a comparison generated from the type's sameness (never written or requested).static booleanSameness.isHandWritten(MethodSymbol operator) True when the developer wrote the operator's body (notdefault operator).static booleanSameness.isHashCode(MethodSymbol operator) True for the zero-argument#?.static booleanSameness.isSamenessOperator(IAggregateSymbol owner, MethodSymbol operator) True for a<=>or==comparing the owner with itself - a declaration of its sameness.static booleanSameness.isSelfComparison(IAggregateSymbol owner, MethodSymbol operator) True for an operator taking exactly one argument of a type the owner is assignable to.static booleanFieldlessIsSet.isSynthesised(MethodSymbol method) Is this '?' the one synthesised by this rule (FIELDLESS_IS_SET)?static booleanInheritedDispatcher.isSynthesised(MethodSymbol method) True if this entry point was synthesised byInheritedDispatcher.completeFor(AggregateSymbol).static voidReturnRetention.markReturnsReceiverInterior(MethodSymbol method) Record, on a user method or operator, that what it returns is (part of) its receiver.OverriddenDeclarations.narrowedReturnTypes(IAggregateSymbol aggregate, MethodSymbol method) The return types of the (non-private) parent declarations this method overrides with a NARROWER - covariant - return, one per distinct type.static CloseSteps.StepsCloseSteps.of(MethodSymbol closeOperator) THE generated chain of the type a close operator belongs to.static ConstructionStepsConstructionSteps.of(MethodSymbol constructor) The steps this constructor takes before its body.static Optional<MethodSymbol> DefaultedComparisonDelegate.of(IAggregateSymbol aggregate, MethodSymbol operator, ISymbol ek9Any) The operator a generated comparison delegates to, resolved on the type (its own, a super's or a trait's).DefaultedComparisonDelegate.Resolver.of(MethodSymbol operator) The operator a generated comparison delegates to - seeDefaultedComparisonDelegate.of(IAggregateSymbol, MethodSymbol, ISymbol).static List<MethodSymbol> OverriddenDeclarations.of(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.static Optional<MethodSymbol> InheritedDispatcher.overriddenEntryPoint(IAggregateSymbol aggregate, MethodSymbol entryPoint) The super's entry point that a sub-type's entry point overrides: the super's effective dispatcher method with exactly the same signature.static IAggregateSymbolInheritedOperators.ownerOf(MethodSymbol operator) The type that declares the operator - its OWNER, which a generated super call names.PolymorphicCopy.singleParameterType(MethodSymbol copy) The single parameter type of a:=:, if it has exactly one.static booleanCopyConstructor.takesExactlyOne(MethodSymbol method, ISymbol type) True whenmethodtakes exactly one parameter whose type is exactlytype.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.static Optional<DispatcherWinner.Selection> DispatcherWinner.forParam(ISymbol concreteType, int paramIndex, List<MethodSymbol> handlers) The winning handler for a concrete type at one parameter position.static Optional<DispatcherWinner.Selection> DispatcherWinner.forParamPair(ISymbol type0, ISymbol type1, List<MethodSymbol> handlers) The winning handler for a pair of concrete types across the first two parameters.static Optional<MethodSymbol> InheritedOperators.nearestAbove(IAggregateSymbol aggregate, Function<IAggregateSymbol, Optional<MethodSymbol>> declaredOn) The nearest declaration above the aggregate thatdeclaredOnfinds on a level (asked of each super class in turn, nearest first).Constructors in org.ek9lang.compiler.support with parameters of type MethodSymbolModifierConstructorDescriptionSelection(MethodSymbol handler, double cost) Creates an instance of aSelectionrecord class.Constructor parameters in org.ek9lang.compiler.support with type arguments of type MethodSymbolModifierConstructorDescriptionSteps(List<ISymbol> closed, Optional<MethodSymbol> parentClose) Creates an instance of aStepsrecord 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.isExactSignatureMatchTo(MethodSymbol toMethod) This method just checks that the signature has exactly the same types as parameters.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) 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)