public class CallCC extends MethodProc implements Inlineable
| Modifier and Type | Field and Description |
|---|---|
static CallCC |
callcc |
argTypes, NO_MATCH, NO_MATCH_AMBIGUOUS, NO_MATCH_BAD_TYPE, NO_MATCH_TOO_FEW_ARGS, NO_MATCH_TOO_MANY_ARGSnoArgscompilerKey, compilerXKey, validateApplyKey, validateXApplyKeynameKey| Modifier and Type | Method and Description |
|---|---|
void |
apply(CallContext ctx)
Call this Procedure using the explicit-CallContext-convention.
|
void |
compile(ApplyExp exp,
Compilation comp,
Target target) |
Type |
getReturnType(Expression[] args)
Semi-deprecated - instead should be set at Inline time.
|
int |
match1(java.lang.Object proc,
CallContext ctx)
Pass one argument.
|
int |
numArgs()
Return
minArgs()|(maxArgs<<12). |
applyN, getParameterType, isApplicable, matchFailAsException, mostSpecific, numParameters, overrideEquivalent, resolveParameterTypesapply, check0, check1, check2, check3, check4, checkArgCount, checkN, getSetter, getSourceLocation, isSideEffectFree, match0, match2, match3, match4, matchN, maxArgs, maxArgs, minArgs, minArgs, set0, set1, setN, setSetter, setSourceLocation, toStringgetName, getProperty, getSymbol, removeProperty, setName, setProperty, setProperty, setSymbolpublic static final CallCC callcc
public int numArgs()
ProcedureminArgs()|(maxArgs<<12).
We use a single virtual function to reduce the number of methods
in the system, as well as the number of virtual method table entries.
We shift by 12 so the number can normally be represented using a
sipush instruction, without requiring a constant pool entry.public int match1(java.lang.Object proc,
CallContext ctx)
Procedurepublic void apply(CallContext ctx) throws java.lang.Throwable
Procedurepublic void compile(ApplyExp exp, Compilation comp, Target target)
compile in interface Inlineablepublic Type getReturnType(Expression[] args)
ProceduregetReturnType in class Procedure