Uses of Record Class
org.ek9lang.compiler.ir.data.CallMetaDataDetails
Packages that use CallMetaDataDetails
Package
Description
IR Data Structures - Metadata and detail classes for IR instructions.
IR Instruction Classes - The instruction set for EK9 intermediate representation.
IR Support Utilities - Helper classes for IR generation and processing.
K - Intermediate Representation Generation.
-
Uses of CallMetaDataDetails in org.ek9lang.compiler.ir.data
Methods in org.ek9lang.compiler.ir.data that return CallMetaDataDetailsModifier and TypeMethodDescriptionCallDetails.metaData()Returns the value of themetaDatarecord component.Constructors in org.ek9lang.compiler.ir.data with parameters of type CallMetaDataDetailsModifierConstructorDescriptionCallDetails(String targetObject, String targetTypeName, String methodName, List<String> parameterTypes, String returnTypeName, List<String> arguments, CallMetaDataDetails metaData, boolean isVirtualCall, boolean isTraitCall, boolean isExplicitTraitDefaultCall, boolean isExternTarget) A call whose result no statement owns - every call other than the closeable temporaries phase 5 marked.CallDetails(String targetObject, String targetTypeName, String methodName, List<String> parameterTypes, String returnTypeName, List<String> arguments, CallMetaDataDetails metaData, boolean isVirtualCall, boolean isTraitCall, boolean isExplicitTraitDefaultCall, boolean isExternTarget, boolean statementOwned) A call that is not bound to its named type - every call other than D38's field-set-status step.CallDetails(String targetObject, String targetTypeName, String methodName, List<String> parameterTypes, String returnTypeName, List<String> arguments, CallMetaDataDetails metaData, boolean isVirtualCall, boolean isTraitCall, boolean isExplicitTraitDefaultCall, boolean isExternTarget, boolean statementOwned, boolean boundToNamedType) A call with today's ownership conventions (CallConventions.DEFAULT).CallDetails(String targetObject, String targetTypeName, String methodName, List<String> parameterTypes, String returnTypeName, List<String> arguments, CallMetaDataDetails metaData, boolean isVirtualCall, boolean isTraitCall, boolean isExplicitTraitDefaultCall, boolean isExternTarget, boolean statementOwned, boolean boundToNamedType, CallConventions conventions) Creates an instance of aCallDetailsrecord class. -
Uses of CallMetaDataDetails in org.ek9lang.compiler.ir.instructions
Methods in org.ek9lang.compiler.ir.instructions that return types with arguments of type CallMetaDataDetailsModifier and TypeMethodDescriptionCallInstr.getMetaData()The call metadata (purity, complexity, side-effects) READ from the resolved callee, if this is aCallDetails.Kind.PROGRAMcall. -
Uses of CallMetaDataDetails in org.ek9lang.compiler.ir.support
Classes in org.ek9lang.compiler.ir.support that implement interfaces with type arguments of type CallMetaDataDetailsModifier and TypeClassDescriptionclassExtracts call metadata from symbols for use in IR generation.Methods in org.ek9lang.compiler.ir.support that return CallMetaDataDetailsModifier and TypeMethodDescription -
Uses of CallMetaDataDetails in org.ek9lang.compiler.phase7
Methods in org.ek9lang.compiler.phase7 that return CallMetaDataDetailsModifier and TypeMethodDescription(package private) CallMetaDataDetailsConstrainedTypeInstrs.baseConstructorMetaData(List<ISymbol> argumentTypes) Metadata for a constructor of the BASE type - every constrained-type lowering that materialises a base value (unset delegate, conversion, copy) calls one of these.(package private) CallMetaDataDetailsConstrainedTypeInstrs.baseMetaData(String methodName, List<ISymbol> argumentTypes) Metadata for the BASE type'smethodNametakingargumentTypes.(package private) CallMetaDataDetailsConstrainedTypeInstrs.booleanOperatorMetaData(String methodName) Metadata for the Boolean_and/_orthat chains constraint results.(package private) CallMetaDataDetailsConstrainedTypeInstrs.constrainedConstructorMetaData()Metadata for the constrained type's own wrapping constructorCT(base).Methods in org.ek9lang.compiler.phase7 with parameters of type CallMetaDataDetailsModifier and TypeMethodDescription(package private) StringConstrainedTypeInstrs.constructorCall(List<IRInstr> instructions, String typeName, List<String> parameterTypes, List<String> arguments, CallMetaDataDetails metaData, DebugInfo debugInfo) THE constructor call on a type made here:CALL typeName.<init>(arguments)- its +1 result's owner is the caller's to state. -
Uses of CallMetaDataDetails in org.ek9lang.compiler.phase7.calls
Classes in org.ek9lang.compiler.phase7.calls that implement interfaces with type arguments of type CallMetaDataDetailsModifier and TypeClassDescriptionfinal classTHEOperatorMap-derived call metadata of a declared EK9 operator - the second honest source ofSynthesisedCallMetaData, used when the target type carries no resolvable member for the callee.final classTHE honest metadata for a callee with NO target symbol available at all - theOperatorMapdeclaration (OperatorDeclarationMetaData) where the name is a declared EK9 operator, otherwisenull: no clause.Methods in org.ek9lang.compiler.phase7.calls that return CallMetaDataDetailsModifier and TypeMethodDescriptionThe metadata of the operator whose method ismethodName.Metadata for a zero-argument call (operand._isSet(),resource._close()).ResolvemethodName(argumentTypes)ontargetTypeand read the metadata off the resolved callee.SynthesisedCallMetaData.forConstructor(ISymbol targetType, List<ISymbol> argumentTypes) Metadata for a CONSTRUCTOR call on the given type - the default constructor whenargumentTypesis empty, otherwise the matching overload (e.g.SynthesisedCallMetaData.forSynthesisedCallee(ISymbol target, String methodName, List<ISymbol> argumentTypes) Metadata for a callee the COMPILER itself synthesised, where a symbol may legitimately not exist - returns null, meaning no metadata clause, when there is nothing measured to report.SynthesisedCallMetaData.forSynthesisedConstructor(ISymbol targetType, List<ISymbol> argumentTypes) A compiler-synthesised CONSTRUCTOR - seeSynthesisedCallMetaData.forSynthesisedCallee(ISymbol, String, List). -
Uses of CallMetaDataDetails in org.ek9lang.compiler.phase7.support
Methods in org.ek9lang.compiler.phase7.support with parameters of type CallMetaDataDetailsModifier and TypeMethodDescriptionCallDetailsFactory.call(String targetObject, String targetTypeName, boolean externallyLinked, String methodName, List<String> parameterTypes, String returnTypeName, List<String> arguments, CallMetaDataDetails metaData) A non-virtual, non-trait call tomethodNameontargetObject.CallDetailsFactory.call(String targetObject, ISymbol targetType, String methodName, List<String> parameterTypes, String returnTypeName, List<String> arguments, CallMetaDataDetails metaData) The same call, but taking the target type as a SYMBOL so BOTH the emitted type name and the virtual-dispatch flag derive from it - they then cannot disagree.CallDetailsFactory.constructorCall(String typeName, boolean externallyLinked, List<String> parameterTypes, List<String> arguments, CallMetaDataDetails metaData) A constructor call ontypeName: target object, target type and return type are alltypeNameand the method isIRConstants.INIT_METHOD.CallDetailsFactory.constructorCall(String typeName, boolean externallyLinked, List<String> parameterTypes, List<String> arguments, CallMetaDataDetails metaData, boolean statementOwned) A constructor call ontypeNamemade at a source call site, carrying phase 5's decision on whether the statement making it owns (and closes) the closeable it makes (support/MarkStatementOwned).CallDetailsFactory.defaultConstructorCall(String typeName, boolean externallyLinked, CallMetaDataDetails metaData) The no-argument default constructor call ontypeName.CallDetailsFactory.functionCall(String functionInstanceVar, String functionTypeName, boolean externallyLinked, List<String> parameterTypes, String returnTypeName, List<String> arguments, CallMetaDataDetails metaData, boolean isDelegateCall) THE shared shape for invoking a function through its_callmethod - use this rather than deciding the dispatch flag at each of the three sites that emit one.CallDetailsFactory.functionCall(String functionInstanceVar, String functionTypeName, boolean externallyLinked, List<String> parameterTypes, String returnTypeName, List<String> arguments, CallMetaDataDetails metaData, boolean isDelegateCall, boolean statementOwned) A function call made at a source call site, carrying phase 5's decision on whether the statement making it owns (and closes) the closeable it returns (support/MarkStatementOwned).CallDetailsFactory.generatedConstructorCall(String typeName, boolean externallyLinked, List<String> parameterTypes, List<String> arguments, CallMetaDataDetails metaData) A constructor call the compiler GENERATES inside a synthesised body (a constrained type's base value, copy and wrapping constructor): no target object, the type named and returned, the methodIRConstants.INIT_METHOD, no dispatch, and the metadata as given.TextFactoryDispatch.redirectForTextBase(IScope constructorParentScope, String typeName, List<String> parameterTypes, List<String> argumentVariables, CallMetaDataDetails metaData) IfconstructorParentScopeis a TEXT base type, return the static_textFactoryCallDetailsto emit (viaCallInstr.callStatic) instead of a direct constructor call; otherwiseOptional.empty()and the caller emits a normal constructor call.CallDetailsFactory.resolvedCall(String targetObject, DispatchFacts dispatch, String methodName, List<String> parameterTypes, String returnTypeName, List<String> arguments, CallMetaDataDetails metaData, boolean statementOwned) THE call to a callee whose dispatch was decided byDispatchFacts- the type it names, interface or not, virtual or not, extern or not all come from the facts, so a route never writes the four flags by hand.