Uses of Interface
org.ek9lang.compiler.symbols.IAggregateSymbol
Package
Description
Common parts of processing that can be reused across various phases.
F - Resolution of Explicitly Defined Type Symbols at this point phase1 processing should have defined
most of the explicitly defined symbols, so they should be resolvable.
G - Full Symbol Resolution can now take place.
Contains critical general components used in the
Ek9Compiler
listeners.
This is the main source of EK9 Symbols used within the compiler.
-
Uses of IAggregateSymbol in org.ek9lang.compiler.common
Modifier and TypeMethodDescriptionMethodAndAggregateData.aggregateSymbol()
Returns the value of theaggregateSymbol
record component.Modifier and TypeMethodDescriptionboolean
AggregateHasPureConstruction.test
(IAggregateSymbol aggregateSymbol) ModifierConstructorDescriptionMethodAndAggregateData
(MethodSymbol methodSymbol, IAggregateSymbol aggregateSymbol) Creates an instance of aMethodAndAggregateData
record class. -
Uses of IAggregateSymbol in org.ek9lang.compiler.phase2
Modifier and TypeMethodDescriptionvoid
NoDuplicatedServicePathsOrError.accept
(IAggregateSymbol service) void
SyntheticConstructorCreator.accept
(IAggregateSymbol aggregate) void
VisibilityOfOperationsOrError.accept
(IAggregateSymbol aggregate) -
Uses of IAggregateSymbol in org.ek9lang.compiler.phase3
Modifier and TypeMethodDescriptionStreamAggregateCheckData.aggregateSymbol()
Returns the value of theaggregateSymbol
record component.Modifier and TypeMethodDescriptionvoid
TraverseAbstractMethods.accept
(IAggregateSymbol aggregateSymbol, Consumer<MethodSymbol> actionToTake) GetIteratorType.apply
(IAggregateSymbol aggregate) OperationCallOrError.apply
(EK9Parser.OperationCallContext ctx, IAggregateSymbol aggregate) RetrieveDefaultedOperators.apply
(IAggregateSymbol aggregate) boolean
IsPropertyOfAggregate.test
(IAggregateSymbol aggregate, ISymbol possibleProperty) ModifierConstructorDescription(package private)
StreamAggregateCheckData
(org.antlr.v4.runtime.Token errorLocation, IAggregateSymbol aggregateSymbol, ISymbol symbolType) Creates an instance of aStreamAggregateCheckData
record class. -
Uses of IAggregateSymbol in org.ek9lang.compiler.support
Modifier and TypeFieldDescription(package private) final Function
<IAggregateSymbol, String> CheckAndPopulateOperator.messageFor
Modifier and TypeMethodDescriptionvoid
CheckForDuplicateOperationsOnGeneric.accept
(IToken errorLocationToken, IAggregateSymbol aggregate) void
NoDuplicateOperationsOrError.accept
(IToken errorLocationToken, IAggregateSymbol aggregate) void
AggregateFactory.addAllSyntheticOperators
(IAggregateSymbol t) Add all possible synthetic operators to the aggregate.AggregateFactory.addComparatorOperator
(IAggregateSymbol aggregateSymbol, String comparatorType, Optional<ISymbol> returnType) Adds a form of a comparison operator.void
AggregateFactory.addComparatorOperator
(IAggregateSymbol aggregateSymbol, IAggregateSymbol arg0, String comparatorType, Optional<ISymbol> returnType) Adds a form of a comparison operator.AggregateFactory.addConstructor
(IAggregateSymbol t) Create a new constructor for the aggregate with no params.void
AggregateFactory.addConstructorIfRequired
(IAggregateSymbol aggregateSymbol, List<ISymbol> constructorArguments, boolean synthetic) Add a new constructor if not present, marked as synthetic.boolean
SymbolFactory.addMissingDefaultOperators
(EK9Parser.DefaultOperatorContext ctx, IAggregateSymbol aggregate) A bit of a beast this method.void
AggregateFactory.addNonAbstractMethods
(IAggregateSymbol from, IAggregateSymbol to) Takes the 'from' aggregate obtains all the methods that are not abstract that have a return the type 'from' and adds them to the 'to' aggregate.void
AggregateFactory.addPurePublicReturnSameTypeMethod
(IAggregateSymbol aggregate, String methodName) AggregateFactory.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.void
AggregateFactory.addSyntheticConstructorIfRequired
(IAggregateSymbol aggregateSymbol) Add a synthetic constructor, if a constructor is not present.void
AggregateFactory.addSyntheticConstructorIfRequired
(IAggregateSymbol aggregateSymbol, List<ISymbol> constructorArguments) Add a synthetic constructor, if a constructor is not present.CheckAndPopulateOperator.apply
(EK9Parser.OperatorDeclarationContext ctx, IAggregateSymbol aggregate) AggregateFactory.cloneMethodWithNewType
(MethodSymbol method, IAggregateSymbol to) AggregateFactory.createMutatorOperator
(IAggregateSymbol aggregateSymbol, String operatorType) Create an operator of the name supplied.AggregateFactory.createOperator
(IAggregateSymbol aggregateSymbol, String operatorType, boolean isPure) Create an operator of the name supplied.AggregateFactory.createPureAcceptSameTypeOperatorAndReturnType
(IAggregateSymbol aggregateSymbol, String comparatorType, Optional<ISymbol> returnType) Creates a pure method with an argument the same as the main type.AggregateFactory.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.AggregateFactory.createPurePublicReturnSameTypeMethod
(IAggregateSymbol aggregateSymbol, String methodName) AggregateFactory.createPurePublicSimpleOperator
(IAggregateSymbol aggregateSymbol, String methodName, Optional<ISymbol> returnType) Just creates a public operator with the name specified.AggregateFactory.createToJsonSimpleOperator
(IAggregateSymbol aggregateSymbol) Create operator for json.AggregateFactory.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) AggregateFactory.getDefaultOperator
(IAggregateSymbol aggregate, String operator) If the operator provided can be defaulted then a Method symbol with the correct signature will be returned.(package private) MethodSymbol
OperatorFactory.getDefaultOperator
(IAggregateSymbol aggregate, String operator) SymbolFactory.newOperator
(EK9Parser.OperatorDeclarationContext ctx, IAggregateSymbol aggregate) Create a new aggregate that represents an EK9 operator, uses a method for this.void
AggregateFactory.updateToConstrainBy
(IAggregateSymbol t, IAggregateSymbol constrainingType) This is the idea where a 'T' is constrained to only be a type or a subtype of that type. -
Uses of IAggregateSymbol in org.ek9lang.compiler.symbols
Modifier and TypeClassDescriptionclass
This is typically a 'class' or an interface type where it can include the definitions of new properties.class
An aggregate, but one that can have zero or more traits (like interfaces).Modifier and TypeMethodDescriptionAggregateWithTraitsSymbol.getAllowedExtenders()
AggregateSymbol.getSubAggregateSymbols()
IAggregateSymbol.getSubAggregateSymbols()
To get a full hierarchy you will need to get these subclasses and then get the subclasses of those.AggregateSymbol.getSuperAggregate()
IAggregateSymbol.getSuperAggregate()
AggregateWithTraitsSymbol.getTraits()
Get the traits that this aggregates implements.default List
<IAggregateSymbol> IAggregateSymbol.getTraits()
Modifier and TypeMethodDescriptionvoid
AggregateWithTraitsSymbol.addAllowedExtender
(IAggregateSymbol extenderSymbol) For use with constraining types to be limited to a declared set.void
AggregateSymbol.addSubAggregateSymbol
(IAggregateSymbol sub) We note down any subtypes this type is used with.void
IAggregateSymbol.addSubAggregateSymbol
(IAggregateSymbol sub) used to add back pointers to subclasses.boolean
AggregateSymbol.hasImmediateSuper
(IAggregateSymbol theSuper) boolean
AggregateWithTraitsSymbol.hasImmediateTrait
(IAggregateSymbol trait) Does this aggregate have the trait passed in as an immediate trait.boolean
AggregateWithTraitsSymbol.isAllowingExtensionBy
(IAggregateSymbol extenderSymbol) Is the extender allowed to implement this aggregate (normally a trait).boolean
AggregateSymbol.isImplementingInSomeWay
(IAggregateSymbol aggregate) boolean
AggregateWithTraitsSymbol.isImplementingInSomeWay
(IAggregateSymbol traitSymbol) boolean
IAggregateSymbol.isImplementingInSomeWay
(IAggregateSymbol aggregate) Only really used by aggregates that can have one or more traits.boolean
AggregateSymbol.isInAggregateHierarchy
(IAggregateSymbol theAggregateToCheck) Does the aggregate passed in exist in this type hierarchy.boolean
IAggregateSymbol.isInAggregateHierarchy
(IAggregateSymbol theAggregateToCheck) void
AggregateSymbol.setSuperAggregate
(IAggregateSymbol baseSymbol) void
IAggregateSymbol.setSuperAggregate
(IAggregateSymbol superAggregateSymbol) Modifier and TypeMethodDescriptionvoid
AggregateSymbol.setSuperAggregate
(Optional<IAggregateSymbol> superAggregate) Set the 'super' of this type.void
IAggregateSymbol.setSuperAggregate
(Optional<IAggregateSymbol> superAggregate)