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_ARGS
noArgs
compilerKey, validateApplyKey
nameKey
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, mostSpecific, numParameters
apply, check0, check1, check2, check3, check4, checkArgCount, checkN, getReturnType, getSetter, getSourceLocation, isSideEffectFree, maxArgs, maxArgs, minArgs, minArgs, set0, set1, setN, setSetter, setSourceLocation, toString
getName, getProperty, getSymbol, removeProperty, setName, setProperty, setProperty, setSymbol
public 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 MethodProc
public int numArgs()
Procedure
minArgs()|(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)
Procedure
public int match1(java.lang.Object arg1, CallContext ctx)
Procedure
public int match2(java.lang.Object arg1, java.lang.Object arg2, CallContext ctx)
Procedure
public int match3(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, CallContext ctx)
Procedure
public int match4(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4, CallContext ctx)
Procedure
public int matchN(java.lang.Object[] args, CallContext ctx)
public void apply(CallContext ctx) throws java.lang.Throwable
Procedure
public java.lang.Object apply0() throws java.lang.Throwable
apply0
in class ProcedureN
java.lang.Throwable
public java.lang.Object apply1(java.lang.Object arg1) throws java.lang.Throwable
apply1
in class ProcedureN
java.lang.Throwable
public java.lang.Object apply2(java.lang.Object arg1, java.lang.Object arg2) throws java.lang.Throwable
apply2
in class ProcedureN
java.lang.Throwable
public java.lang.Object apply3(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3) throws java.lang.Throwable
apply3
in class ProcedureN
java.lang.Throwable
public 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 ProcedureN
java.lang.Throwable
public java.lang.Object applyN(java.lang.Object[] args) throws java.lang.Throwable
applyN
in class MethodProc
java.lang.Throwable
public static java.lang.Object apply0Default(ModuleMethod method) throws java.lang.Throwable
java.lang.Throwable
public static java.lang.Object apply1Default(ModuleMethod method, java.lang.Object arg1) throws java.lang.Throwable
java.lang.Throwable
public static java.lang.Object apply2Default(ModuleMethod method, java.lang.Object arg1, java.lang.Object arg2) throws java.lang.Throwable
java.lang.Throwable
public 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.Throwable
public 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.Throwable
public static java.lang.Object applyNDefault(ModuleMethod method, java.lang.Object[] args) throws java.lang.Throwable
java.lang.Throwable
public static void applyError()