public class ModuleMethod extends MethodProc
| Modifier and Type | Field and Description |
|---|---|
ModuleBody |
module |
protected int |
numArgs |
int |
selector |
argTypes, NO_MATCH, NO_MATCH_AMBIGUOUS, NO_MATCH_BAD_TYPE, NO_MATCH_TOO_FEW_ARGS, NO_MATCH_TOO_MANY_ARGSnoArgscompilerKey, compilerXKey, validateApplyKey, validateXApplyKeynameKey| Constructor and Description |
|---|
ModuleMethod(ModuleBody module,
int selector,
java.lang.Object name,
int numArgs) |
ModuleMethod(ModuleBody module,
int selector,
java.lang.Object name,
int numArgs,
java.lang.Object argTypes) |
| Modifier and Type | Method and Description |
|---|---|
void |
apply(CallContext ctx)
Call this Procedure using the explicit-CallContext-convention.
|
java.lang.Object |
apply0() |
static java.lang.Object |
apply0Default(ModuleMethod method) |
java.lang.Object |
apply1(java.lang.Object arg1) |
static java.lang.Object |
apply1Default(ModuleMethod method,
java.lang.Object arg1) |
java.lang.Object |
apply2(java.lang.Object arg1,
java.lang.Object arg2) |
static java.lang.Object |
apply2Default(ModuleMethod method,
java.lang.Object arg1,
java.lang.Object arg2) |
java.lang.Object |
apply3(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3) |
static java.lang.Object |
apply3Default(ModuleMethod method,
java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3) |
java.lang.Object |
apply4(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object arg4) |
static java.lang.Object |
apply4Default(ModuleMethod method,
java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object arg4) |
static void |
applyError()
Helper methods for default ModuleBody actions.
|
java.lang.Object |
applyN(java.lang.Object[] args) |
static java.lang.Object |
applyNDefault(ModuleMethod method,
java.lang.Object[] args) |
ModuleMethod |
init(ModuleBody module,
int selector,
java.lang.Object name,
int numArgs) |
int |
match0(CallContext ctx)
Pass zero arguments.
|
int |
match1(java.lang.Object arg1,
CallContext ctx)
Pass one argument.
|
int |
match2(java.lang.Object arg1,
java.lang.Object arg2,
CallContext ctx)
Pass two arguments.
|
int |
match3(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
CallContext ctx)
Pass three arguments.
|
int |
match4(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object arg4,
CallContext ctx)
Pass four arguments.
|
int |
matchN(java.lang.Object[] args,
CallContext ctx) |
int |
numArgs()
Return
minArgs()|(maxArgs<<12). |
protected void |
resolveParameterTypes()
Figure out parameter types.
|
getParameterType, isApplicable, matchFailAsException, mostSpecific, numParameters, overrideEquivalentapply, check0, check1, check2, check3, check4, checkArgCount, checkN, getReturnType, getSetter, getSourceLocation, isSideEffectFree, maxArgs, maxArgs, minArgs, minArgs, set0, set1, setN, setSetter, setSourceLocation, toStringgetName, getProperty, getSymbol, removeProperty, setName, setProperty, setProperty, setSymbolpublic ModuleBody module
public int selector
protected int numArgs
public ModuleMethod(ModuleBody module, int selector, java.lang.Object name, int numArgs)
public ModuleMethod(ModuleBody module, int selector, java.lang.Object name, int numArgs, java.lang.Object argTypes)
public ModuleMethod init(ModuleBody module, int selector, java.lang.Object name, int numArgs)
protected void resolveParameterTypes()
resolveParameterTypes in class MethodProcpublic 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 match0(CallContext ctx)
Procedurepublic int match1(java.lang.Object arg1,
CallContext ctx)
Procedurepublic int match2(java.lang.Object arg1,
java.lang.Object arg2,
CallContext ctx)
Procedurepublic int match3(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
CallContext ctx)
Procedurepublic int match4(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object arg4,
CallContext ctx)
Procedurepublic int matchN(java.lang.Object[] args,
CallContext ctx)
public void apply(CallContext ctx) throws java.lang.Throwable
Procedurepublic java.lang.Object apply0()
throws java.lang.Throwable
apply0 in class ProcedureNjava.lang.Throwablepublic java.lang.Object apply1(java.lang.Object arg1)
throws java.lang.Throwable
apply1 in class ProcedureNjava.lang.Throwablepublic java.lang.Object apply2(java.lang.Object arg1,
java.lang.Object arg2)
throws java.lang.Throwable
apply2 in class ProcedureNjava.lang.Throwablepublic java.lang.Object apply3(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3)
throws java.lang.Throwable
apply3 in class ProcedureNjava.lang.Throwablepublic java.lang.Object apply4(java.lang.Object arg1,
java.lang.Object arg2,
java.lang.Object arg3,
java.lang.Object arg4)
throws java.lang.Throwable
apply4 in class ProcedureNjava.lang.Throwablepublic java.lang.Object applyN(java.lang.Object[] args)
throws java.lang.Throwable
applyN in class MethodProcjava.lang.Throwablepublic static java.lang.Object apply0Default(ModuleMethod method) throws java.lang.Throwable
java.lang.Throwablepublic static java.lang.Object apply1Default(ModuleMethod method, java.lang.Object arg1) throws java.lang.Throwable
java.lang.Throwablepublic static java.lang.Object apply2Default(ModuleMethod method, java.lang.Object arg1, java.lang.Object arg2) throws java.lang.Throwable
java.lang.Throwablepublic static java.lang.Object apply3Default(ModuleMethod method, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3) throws java.lang.Throwable
java.lang.Throwablepublic static java.lang.Object apply4Default(ModuleMethod method, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4) throws java.lang.Throwable
java.lang.Throwablepublic static java.lang.Object applyNDefault(ModuleMethod method, java.lang.Object[] args) throws java.lang.Throwable
java.lang.Throwablepublic static void applyError()