NAME
src/pmc/callcontext.pmc - CallContext PMC
DESCRIPTION
The CallContext PMC is used to store the argument list and argument meta information for a multiple dispatch call.
Functions
void init()
Initializes a newly created CallContext object.
void mark()
Mark any referenced strings and PMCs.
void morph(PMC *type)
Morph the call signature into a return signature.
(Currenly ignores the type passed in,
and resets the named and positional arguments stored.)
void set_string_native(STRING *value)
Sets the short signature for the CallContext.
STRING *get_string()
Returns the short signature for the CallContext.
void set_pmc(PMC *value)
Sets a fixed-size array of integer types (a type tuple) for the CallContext.
PMC *get_pmc()
Returns a fixed-size array of integer types (a type tuple) for the CallContext.
void set_attr_str(STRING *key, PMC *value)
Set a PMC value for an attribute by string name.
- results Stores the return signature, an array of PMCs.
- arg_flags Stores a set of flags for the call signature arguments, an array of integers.
- return_flags Stores a set of flags for the call signature return arguments, an array of integers.
PMC *get_attr_str(STRING *key)
Get a PMC value for an attribute by string name.
- results Retrieves the return signature, an array of PMCs.
- arg_flags Retrieves the flags for the call signature arguments, an array of integers.
- return_flags Retrieves the flags for the call signature return arguments, an array of integers.
- named Retrieves the hash of named arguments.
- caller_ctx return Caller Context
- lex_pad return LexPad
- outer_ctx return Outer Context
- current_sub return current Sub
- handlers return list of ExceptioHandlers
- current_cont return current Continuation
- current_object return current Object (if in method call)
- current_namespace return current Namespace
PMC *clone()
Creates and returns a clone of the signature.
PMC *backtrace
Gets a representation of the backtrace starting from this Context.
Returns an array of hashes.
Each array element represents a caller in the backtrace,
the most recent caller first.
The hash has two keys:
sub
,
which holds the PMC representing the sub,
and annotations
which is a hash of the annotations at the point where the exception was thrown for the current sub,
or for the point of the call a level deeper for the rest.