Uses of Class
org.ek9lang.compiler.symbols.ScopedSymbol
Packages that use ScopedSymbol
Package
Description
G - Full Symbol Resolution can now take place.
I - PRE Intermediate Representation generation checks.
M - Intermediate Representation Analysis and Optimization.
Contains critical general components used in the
Ek9Compiler listeners.
This is the main source of EK9 Symbols used within the compiler.
-
Uses of ScopedSymbol in org.ek9lang.compiler.phase3
Classes in org.ek9lang.compiler.phase3 that implement interfaces with type arguments of type ScopedSymbolModifier and TypeClassDescription(package private) final classUsed for resolving operation calls on aggregates, which can include properties that are delegates to functions.(package private) final classLocate a possible call to an identifierReference, so some sort of call.Methods in org.ek9lang.compiler.phase3 that return ScopedSymbolModifier and TypeMethodDescriptionOperationCallOrError.apply(EK9Parser.OperationCallContext ctx, IAggregateSymbol aggregate) ResolveIdentifierReferenceCallOrError.apply(EK9Parser.CallContext ctx) -
Uses of ScopedSymbol in org.ek9lang.compiler.phase5
Classes in org.ek9lang.compiler.phase5 that implement interfaces with type arguments of type ScopedSymbolModifier and TypeClassDescription(package private) final classTHE dispatcher half of "what may a call through this declaration run" (the closeable route-matrix verifier, 2026-10-22): a call to a dispatcher entry point runs, at run time, the handler most specific to its argument's type - so the entry returns and keeps whatever any of its handlers does.(package private) final classTHE dispatcher half of "what may a call through this declaration run" (the closeable route-matrix verifier, 2026-10-22): a call to a dispatcher entry point runs, at run time, the handler most specific to its argument's type - so the entry returns and keeps whatever any of its handlers does.(package private) final classTHE dispatcher half of "what may a call through this declaration run" (the closeable route-matrix verifier, 2026-10-22): a call to a dispatcher entry point runs, at run time, the handler most specific to its argument's type - so the entry returns and keeps whatever any of its handlers does.(package private) final classTHE "is this symbol a capture of the callable whose returning variable is being read" of the return-source readings (ReturnSourceClassifier,ReturnSourceOrigins): by IDENTITY (IsCapturedVariable), one the callable (a dynamic function) or the type it belongs to (a dynamic class) captured.(package private) final classA declaration whose retention was not DECLARED by a built-in: it carries no RETAINS, or only derived marks (IsDerivedRetention).(package private) final classThe callable aCloseableArgumentKeepingrecord is about: a member of a parameterised type is judged by the generic's own declaration (GenericTemplateMember), anything else by itself.(package private) final classMay a call through another declaration run this callable - a method of an aggregate (dynamic classes included, constructors not), or a function (dynamic functions included)? The callables the dispatch union of the RETAINS derivations (ReceiverInteriorReturns,CloseableArgumentKeeping) unions over.(package private) final classThe declarations a call through which may runcallable: those it overrides, or its super function - THE "what may a call through this declaration run" of the dispatch union, held by both RETAINS derivations (the returns one,ReceiverInteriorReturns, and the callee-keep one,CloseableArgumentKeeping), so what an override RETURNS and what it KEEPS are unioned over the same set.(package private) final classThe declarations a call through which may runcallable: those it overrides, or its super function - THE "what may a call through this declaration run" of the dispatch union, held by both RETAINS derivations (the returns one,ReceiverInteriorReturns, and the callee-keep one,CloseableArgumentKeeping), so what an override RETURNS and what it KEEPS are unioned over the same set.(package private) final classRecord on each dispatcher entry what its handlers return and keep (MarkOverriddenBy, over the pairsDispatchedHandlerPairsfound); true when an entry gained a rule - one step of a RETAINS derivation's fixpoint.(package private) final classRecord on each dispatcher entry what its handlers return and keep (MarkOverriddenBy, over the pairsDispatchedHandlerPairsfound); true when an entry gained a rule - one step of a RETAINS derivation's fixpoint.Methods in org.ek9lang.compiler.phase5 that return ScopedSymbolModifier and TypeMethodDescriptionJudgedCallable.apply(ScopedSymbol callable) CloseableArgumentKeeping.Holder.callable()Returns the value of thecallablerecord component.MutatedOnlyVariables.ReturningCallable.callable()Returns the value of thecallablerecord component.Methods in org.ek9lang.compiler.phase5 that return types with arguments of type ScopedSymbolModifier and TypeMethodDescriptionDispatchedHandlerPairs.apply(Collection<? extends ScopedSymbol> callables) DispatchedHandlerPairs.apply(Collection<? extends ScopedSymbol> callables) OverriddenBy.apply(ScopedSymbol callable) Methods in org.ek9lang.compiler.phase5 with parameters of type ScopedSymbolModifier and TypeMethodDescriptionJudgedCallable.apply(ScopedSymbol callable) OverriddenBy.apply(ScopedSymbol callable) (package private) voidCloseableArgumentKeeping.declared(ScopedSymbol callable) A callable that was walked: what it does with each of its parameters is then known.(package private) static CloseableArgumentKeeping.HolderCloseableArgumentKeeping.Holder.of(ScopedSymbol callable, ISymbol symbol) (package private) voidCloseableArgumentKeeping.passedToCall(CloseableArgumentKeeping.Holder from, ScopedSymbol callee, int argumentIndex) The variable is passed, whole, to a method or function of the program's own.(package private) voidCloseableArgumentKeeping.receiverPassed(CloseableArgumentKeeping.Holder from, ScopedSymbol callee) The object a method runs on -Holder.of(method, null), its receiver - is passed on, as the receiver, to a method of the program's own: if that method keeps ITS receiver, so does this one.booleanIsCaptureOf.test(ISymbol symbol, ScopedSymbol callable) booleanIsUserDeclaration.test(ScopedSymbol declaration) booleanMayOverride.test(ScopedSymbol callable) Method parameters in org.ek9lang.compiler.phase5 with type arguments of type ScopedSymbolModifier and TypeMethodDescriptionDispatchedHandlerPairs.apply(Collection<? extends ScopedSymbol> callables) booleanUnionDispatchedHandlers.test(List<Map.Entry<ScopedSymbol, ScopedSymbol>> pairs) booleanUnionDispatchedHandlers.test(List<Map.Entry<ScopedSymbol, ScopedSymbol>> pairs) Constructors in org.ek9lang.compiler.phase5 with parameters of type ScopedSymbolModifierConstructorDescription(package private)Holder(ScopedSymbol callable, ISymbol symbol) Creates an instance of aHolderrecord class.(package private)ReturningCallable(ParsedModule parsedModule, ScopedSymbol callable, List<EK9Parser.ExpressionContext> sources) Creates an instance of aReturningCallablerecord class. -
Uses of ScopedSymbol in org.ek9lang.compiler.phase7.calls
Methods in org.ek9lang.compiler.phase7.calls that return types with arguments of type ScopedSymbolModifier and TypeMethodDescriptionOperatorTargetMethodResolver.apply(ISymbol targetType, String methodName, List<ISymbol> argumentTypes) Resolve a method/operator on the target type, returning the resolved symbol itself (not just type names), so callers can read its defining type, return type and metadata rather than re-deriving them.OperatorTargetMethodResolver.onTypeArgument(ScopedSymbol templateMember, UnaryOperator<ISymbol> typeArgumentOf) THE member that serves, inside a monomorphisation, a call phase 3 resolved on a generic's bareT.OperatorTargetMethodResolver.servingMember(ISymbol targetType, String methodName, List<ISymbol> argumentTypes, UnaryOperator<ISymbol> typeArgumentOf) OperatorTargetMethodResolver.apply(ISymbol, String, List)followed byOperatorTargetMethodResolver.onTypeArgument(ScopedSymbol, UnaryOperator): the member that serves the call, read off the type argument when the call is resolved on a generic's bareTinside a monomorphisation.Methods in org.ek9lang.compiler.phase7.calls with parameters of type ScopedSymbolModifier and TypeMethodDescriptionOperatorTargetMethodResolver.onTypeArgument(ScopedSymbol templateMember, UnaryOperator<ISymbol> typeArgumentOf) THE member that serves, inside a monomorphisation, a call phase 3 resolved on a generic's bareT.Method parameters in org.ek9lang.compiler.phase7.calls with type arguments of type ScopedSymbolModifier and TypeMethodDescriptionstatic DispatchFactsDispatchFacts.ofOperatorFallback(Optional<ScopedSymbol> servingMember, ISymbol staticType, boolean explicitSuperReceiver, TypeNameOrException typeNames, UnaryOperator<ISymbol> concreteType) The facts of an operator call with no parse node (path B ofCallDetailsBuilder: a compound assignment, a unary operator, a phase-7 protocol call): the call names the type that declares the serving member when one resolves, else the static type; a trait call is virtual by definition, otherwise dispatch is the static type's openness; extern is the STATIC type's (MONO-5 - see the class note). -
Uses of ScopedSymbol in org.ek9lang.compiler.phase9
Classes in org.ek9lang.compiler.phase9 that implement interfaces with type arguments of type ScopedSymbolModifier and TypeClassDescription(package private) final classTHE symbol an IR call runs, read back from what the call names: its target type (a user construct of the program's IR first, else a type or function the program resolves by fully qualified name - a core type, a parameterisation), the method by its IR name (OperatorMap.resolvedMethodName(MethodSymbol), so_addAssfinds+=) and the fully qualified types of its parameters; a function's_callis the function itself.Methods in org.ek9lang.compiler.phase9 that return types with arguments of type ScopedSymbolModifier and TypeMethodDescription(package private) Optional<ScopedSymbol> The symbol a call runs, when its names lead to one.Constructor parameters in org.ek9lang.compiler.phase9 with type arguments of type ScopedSymbolModifierConstructorDescriptionPublishedValues(Predicate<String> mayBeRegistered, Function<CallInstr, Optional<ScopedSymbol>> calleeOf) (package private)ReferenceEdges(Function<CallInstr, Optional<ScopedSymbol>> calleeOf) -
Uses of ScopedSymbol in org.ek9lang.compiler.support
Methods in org.ek9lang.compiler.support that return types with arguments of type ScopedSymbolModifier and TypeMethodDescriptionMostSpecificScope.getIfAny()The nearest dynamic block, else the nearest non-block scope, of the current scope's enclosing scopes - empty when the code is in neither. -
Uses of ScopedSymbol in org.ek9lang.compiler.support.retention
Classes in org.ek9lang.compiler.support.retention that implement interfaces with type arguments of type ScopedSymbolModifier and TypeClassDescription(package private) final classTHE write of a derived RETAINS rule: marks the callable as DERIVED and adds the rule text.(package private) final classTHE argument question the argument readers ask (RetainsArgument,HandsBackArgument,KeepsArgumentBeyondResult,DefinitelyKeepsArgument,MayKeepArgument), so they differ only in which rules count (wanted) and in whether theunknownopt-out answers for them (unknownCounts): does a rule ofcallee(declared, derived, or the generic's own) that matcheswantedtake the argument given atparameterIndexas its source? WithunknownCounts, a callee declaringunknownanswers yes - also for an index it does not declare.final classTHE declared parameters of a method, operator or function a RETAINS rule names; none for anything else.final classTHE method or function a recorded symbol CALLS, when it is a call that hands back a value made elsewhere: a method, operator or function call - never a constructor, whose result is always fresh.final classTHE method, operator or function an expression CALLS when the whole expression is that call -a.get(k),first(),a + b,(a.get(k))- so its value is whatever the call handed back.(package private) final classDoes the callee (or, for a member of a parameterised type, the generic's own member) declare a rule matchingwanted- or theunknownopt-out, under which nothing may be assumed.final classDoescalleesay, by an EXPLICIT rule - declared by a built-in or derived for a user callable - that it keeps the argument it is given atparameterIndexsomewhere other than its result? The narrower question thanKeepsArgumentBeyondResult, which also counts the inexpressibleunknownopt-out: an unnamed closeable given to a callee that DEFINITELY keeps it is E81072; one given to a callee that may is handed on.final classDoescalleesay, by an EXPLICIT rule - declared by a built-in (readyHandler <- receiver) or derived for a user method - that it keeps the object it is called ON beyond the call: stores it in an argument or where nothing here can name it? The receiver's half ofDefinitelyKeepsArgument: an unnamed closeable that is the RECEIVER of such a call is E81072 (D80 follow-up, 2026-10-21:Tracked("r").registerIn(kept), whose body isitems += this, closed the receiver and then the list held a closed object).final classMay the call hand the argument it is given atparameterIndexback as (part of) its result -return <- <that parameter>? The narrower question thanRetainsArgument, which also counts an argument kept anywhere else (receiver <- item) and theunknownopt-out: the closeable ownership decision reports a hand-back (E81072) and treats any other keeping as handed on.final classWas the callee's retention DERIVED by phase 5 (a user callable) rather than DECLARED (a built-in's@Ek9Retains)? The closeable ownership decision treats the two differently: a derived link is honoured only where the return type may hold a borrowed view (support/BorrowedViewReturn).final classMaycalleekeep the argument it is given atparameterIndexsomewhere other than its result - into its receiver, another argument, or anywhere (receiver <- item,unknown)? The question a constructor passing its own parameter on asks to know whether the parameter outlives the construction.final classMaycalleekeep its receiver beyond the call - an explicit rule, or theunknownopt-out?final classWhat may come to HOLD the argumentcalleeis given atparameterIndex, other than its result: the receiver (RetentionRule.RECEIVER) and the names of the other parameters it may store the argument into (receiver <- item,items <- item).final classRecord, on a user method, operator or function, that the argument given for a parameter may be kept beyond the call - the rule<destination> <- <parameter>(RetentionRule.destination()andRetentionRule.source()), exactly the text a built-in declares: the destination isreceiver(stored in a property of the object), another parameter's name (added to the object that argument refers to),ambient(held where nothing here can name it: a capture, a returned closure, a call that keeps it) orReturnRetention.UNIMPLEMENTED.final classRecord, on a user method or operator, that the object it is called on may be kept beyond the call -<destination> <- receiver, exactly the text a built-in declares (HTTP.whenReady'sreadyHandler <- receiver): the destination is another parameter's name (the receiver is stored in what that argument refers to) orambient(held where nothing here can name it: a capture, a returned closure, a call that keeps it).final classRecord that an abstract declaration nothing implements MAY keep each of its arguments (unimplemented <- <parameter>,ReturnRetention.UNIMPLEMENTED); the keep counterpart ofMarkReturnsEachParameter.final classTHE dispatch union (Steve, 2026-10-21, D61): a call throughdeclarationmay runoverride- a method that overrides it, or a function (dynamic functions included) whose super function it is - so the declaration also returns whatever the override does, and keeps whatever the override keeps (the lane callee-keep, 2026-10-21:receiver <- item,<otherParam> <- item,ambient <- item).final classTHE dispatch union (Steve, 2026-10-21, D61): a call throughdeclarationmay runoverride- a method that overrides it, or a function (dynamic functions included) whose super function it is - so the declaration also returns whatever the override does, and keeps whatever the override keeps (the lane callee-keep, 2026-10-21:receiver <- item,<otherParam> <- item,ambient <- item).final classAn abstract declaration no program code implements: which implementation runs cannot be known, so its result may be any of its arguments -return <- <each parameter>.final classRecord, on a user method, operator or function, that what it returns may be the argument given for the parameterparameterName-return <- parameterName, exactly the text a built-in declares (List.getOrDefault'sreturn <- defaultValue).final classDoes whatcalleereturns possibly share an object with its receiver or an argument.final classThe MAY half ofDefinitelyKeepsArgument: doescalleesay, by an EXPLICIT rule, that it keeps the argument - or is it an abstract declaration nothing implements, which MAY keep any argument (ReturnRetention.UNIMPLEMENTED)? An unnamed closeable given to such a callee is E81072 (nothing could close it); a named try resource given to it is allowed.final classTHE index of the parameter a RETAINS rule names (parameterName) incallee's declared parameters; -1 when it declares none of that name.final classThe parameterscalleestores its receiver INTO by an explicit rule (items <- receiver, declared or derived): the names of the arguments that end up holding the object it is called on.final classMaycalleekeep (a reference to) the argument it is given atparameterIndex- into its receiver, another argument, its result or anywhere else (receiver <- item,return <- other, orunknown)? An argument the callee keeps is no longer the caller's alone.(package private) final classThe RETAINS text of the callee itself and of the generic it is a parameterisation, or member, of.final classTHE rules saying whatcalleeRETURNS (everyreturn <- sourceit declares or has derived, the generic's own for a parameterisation or a member of one) - for a caller that must map each source back onto the receiver or the argument it names (phase5/ReturnSourceKind.origins).final classDoes whatcalleereturns possibly share an object with its RECEIVER.(package private) final classEvery rule the callee declares or has derived, the generic's own included; none forunknown.Methods in org.ek9lang.compiler.support.retention that return types with arguments of type ScopedSymbolModifier and TypeMethodDescriptionCalleeOfExpression.apply(EK9Parser.ExpressionContext expression, Function<org.antlr.v4.runtime.tree.ParseTree, ISymbol> recorded) The callee of the expression.Methods in org.ek9lang.compiler.support.retention with parameters of type ScopedSymbolModifier and TypeMethodDescriptionvoidAddRetentionRule.accept(ScopedSymbol callable, String rule) voidMarkKeepsParameter.accept(ScopedSymbol callable, org.ek9lang.tooling.construct.RetentionRule keep) voidMarkKeepsReceiver.accept(ScopedSymbol callable, String destination) voidMarkMayKeepEachParameter.accept(ScopedSymbol callable) voidMarkReturnsEachParameter.accept(ScopedSymbol callable) voidMarkReturnsParameter.accept(ScopedSymbol callable, String parameterName) CallableParameters.apply(ScopedSymbol callee) KeptArgumentHolders.apply(ScopedSymbol callee, Integer parameterIndex) ReceiverKeptInto.apply(ScopedSymbol callee) RetentionsOf.apply(ScopedSymbol callee) List<org.ek9lang.tooling.construct.RetentionRule> ReturnRules.apply(ScopedSymbol callee) List<org.ek9lang.tooling.construct.RetentionRule> RulesOf.apply(ScopedSymbol callee) intParameterIndex.applyAsInt(ScopedSymbol callee, String parameterName) booleanArgumentRule.test(ScopedSymbol callee, Integer parameterIndex) booleanDeclaresAnyRule.test(ScopedSymbol callee, Predicate<org.ek9lang.tooling.construct.RetentionRule> wanted) booleanDefinitelyKeepsArgument.test(ScopedSymbol callee, Integer parameterIndex) booleanDefinitelyKeepsReceiver.test(ScopedSymbol callee) booleanHandsBackArgument.test(ScopedSymbol callee, Integer parameterIndex) booleanIsDerivedRetention.test(ScopedSymbol callee) booleanKeepsArgumentBeyondResult.test(ScopedSymbol callee, Integer parameterIndex) booleanKeepsReceiverBeyondResult.test(ScopedSymbol callee) booleanMarkOverriddenBy.test(ScopedSymbol declaration, ScopedSymbol override) Record every rule of the override on the declaration.booleanMayAlias.test(ScopedSymbol callee) booleanMayKeepArgument.test(ScopedSymbol callee, Integer parameterIndex) booleanRetainsArgument.test(ScopedSymbol callee, Integer parameterIndex) booleanReturnsReceiverInterior.test(ScopedSymbol callee) -
Uses of ScopedSymbol in org.ek9lang.compiler.symbols
Subclasses of ScopedSymbol in org.ek9lang.compiler.symbolsModifier and TypeClassDescriptionclassThis is typically a 'class' or an interface type where it can include the definitions of new properties.classAn aggregate, but one that can have zero or more traits (like interfaces).classSpecial type that is super of Aggregate and super of Function (if they don't have supers).classEK9 assertDoesNotThrow expression - validates that an expression does not throw.classEK9 assertPanic expression - asserts that the wrapped expression fires anorg.ek9.lang::Panic.classEK9 assertThrows expression - captures an expected exception type and expression.classJust re-uses the bulk of method symbol for when we want to make a symbol that is a call to an actual method.classJust focuses on the ability to possible capture variables from an enclosing scope.classEK9 switch/try control type symbol - this can effectively return a value if it is configured with returning part.classEK9 'for' type symbol - we need a scope because we declare a new variable as the loop variable.classScope for functions that are part of a module.classRepresents some type of method that exists on an aggregate type scope.classAdded as a common symbol type for both Functions and Aggregates that could possibly be generic in nature and also be a parameterised type.classScope for callable methods (operations) that are part of a Service.classUsed when duplicate symbols are found, where we need to add a placeholder.classJust re-uses the bulk of method symbol.classEK9 switch statement - this can effectively return a value if it is configured with returning part.classEK9 try statement - this can effectively return a value if it is configured with returning part.classEK9 'while' or 'do/while' type symbol - we need a scope because we can declare new variables as part of the pre-flow semantics.Methods in org.ek9lang.compiler.symbols that return ScopedSymbolModifier and TypeMethodDescriptionprotected ScopedSymbolScopedSymbol.cloneIntoScopeSymbol(ScopedSymbol newCopy) ScopedSymbol.copyScopedSymbolProperties(ScopedSymbol newCopy) Just copies the properties over.CallSymbol.getResolvedSymbolToCall()Methods in org.ek9lang.compiler.symbols that return types with arguments of type ScopedSymbolModifier and TypeMethodDescriptionLocalScope.findNearestDynamicBlockScopeInEnclosingScopes()ScopedSymbol.findNearestDynamicBlockScopeInEnclosingScopes()SymbolTable.findNearestDynamicBlockScopeInEnclosingScopes()LocalScope.findNearestNonBlockScopeInEnclosingScopes()Traverses up the scope tree of enclosing scopes to find the first scope type that is an aggregate.ScopedSymbol.findNearestNonBlockScopeInEnclosingScopes()SymbolTable.findNearestNonBlockScopeInEnclosingScopes()Methods in org.ek9lang.compiler.symbols with parameters of type ScopedSymbolModifier and TypeMethodDescriptionprotected ScopedSymbolScopedSymbol.cloneIntoScopeSymbol(ScopedSymbol newCopy) ScopedSymbol.copyScopedSymbolProperties(ScopedSymbol newCopy) Just copies the properties over.voidCallSymbol.setResolvedSymbolToCall(ScopedSymbol symbol) Set the actual method/function that should be called.