Uses of Interface
org.ek9lang.compiler.symbols.ICanCaptureVariables
Packages that use ICanCaptureVariables
Package
Description
Synthetic operator and method generation for EK9.
Contains critical general components used in the
Ek9Compiler listeners.
This is the main source of EK9 Symbols used within the compiler.
-
Uses of ICanCaptureVariables in org.ek9lang.compiler.phase7.generator
Methods in org.ek9lang.compiler.phase7.generator with type parameters of type ICanCaptureVariablesModifier and TypeMethodDescription<T extends ICanCaptureVariables & ISymbol>
List<IRInstr> DynamicConstructEmitter.emit(T dynamicSymbol, Function<IRGenerationContext, IRConstruct> generate, EK9Parser.DynamicVariableCaptureContext captureCtx, DebugInfo debugInfo, String resultVariable, Function<List<ISymbol>, CallMetaDataDetails> metaData) Emit the dynamic construct and the instructions that construct it. -
Uses of ICanCaptureVariables in org.ek9lang.compiler.phase7.support
Classes in org.ek9lang.compiler.phase7.support that implement interfaces with type arguments of type ICanCaptureVariablesModifier and TypeClassDescriptionclassAccepts a ICanCaptureVariables (either a function or an aggregate).Methods in org.ek9lang.compiler.phase7.support with parameters of type ICanCaptureVariablesModifier and TypeMethodDescriptionvoidFieldsFromCapture.accept(ICanCaptureVariables canCaptureVariables) voidConstructFieldDeclarations.addCapturesTo(IRConstruct construct, IRGenerationContext stackContext, ICanCaptureVariables canCaptureVariables) Declare the captured variables of a function (or anything that captures) as fields onconstruct.static CaptureConstructorParametersCaptureConstructorParameters.of(ICanCaptureVariables construct, TypeNameOrException typeNames) The constructor parameters of this dynamic class or dynamic function. -
Uses of ICanCaptureVariables in org.ek9lang.compiler.phase7.synthesis
Methods in org.ek9lang.compiler.phase7.synthesis with parameters of type ICanCaptureVariablesModifier and TypeMethodDescriptionprotected StringAbstractSyntheticGenerator.returnVariableNameFor(ICanCaptureVariables construct) THE name of a generated body's return variable (D37):rtn, unless the construct CAPTURES a variable namedrtn- a capture is a FIELD of a dynamic class or function, and a back end resolvesSTORE rtnto that field (the JVM lowered it asputfield rtn, a VerifyError; native stored into the field and fell through toret void). -
Uses of ICanCaptureVariables in org.ek9lang.compiler.support
Classes in org.ek9lang.compiler.support that implement interfaces with type arguments of type ICanCaptureVariablesModifier and TypeClassDescriptionfinal classTHE "is this symbol one of the variables a dynamic function or class captured?" - by IDENTITY, never by name.final classTHE "is this symbol one of the variables a dynamic function or class captured?" - by IDENTITY againstCapturedVariables, never by name: a name join would take an unrelated variable of the same name (an outer local, a property) for the capture; the E08251 check once did.Methods in org.ek9lang.compiler.support with parameters of type ICanCaptureVariablesModifier and TypeMethodDescriptionCapturedVariables.apply(ICanCaptureVariables capturer) The variablescapturercaptured, in capture order; empty when it captures nothing (every aggregate can capture, only a dynamic one does).BasicSymbolFactory.newDynamicVariableCapture(ICanCaptureVariables scope, IScope enclosingBlockScope) SymbolFactory.newDynamicVariableCapture(ICanCaptureVariables scope, IScope enclosingBlockScope) Create a new local scope just for variables to be defined/captured in for dynamic classes/functions.booleanIsCapturedVariable.test(ISymbol candidate, ICanCaptureVariables capturer) True whencandidateis, by identity, one of the variablescapturercaptured. -
Uses of ICanCaptureVariables in org.ek9lang.compiler.symbols
Classes in org.ek9lang.compiler.symbols that implement ICanCaptureVariablesModifier 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).classJust focuses on the ability to possible capture variables from an enclosing scope.classScope for functions that are part of a module.classAdded as a common symbol type for both Functions and Aggregates that could possibly be generic in nature and also be a parameterised type.classUsed when duplicate symbols are found, where we need to add a placeholder.