public class TypeSwitch extends MethodProc implements Inlineable
| Modifier and Type | Field and Description |
|---|---|
static TypeSwitch |
typeSwitch |
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 |
|---|
TypeSwitch(java.lang.String name) |
| 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 |
numArgs()
Return
minArgs()|(maxArgs<<12). |
applyN, getParameterType, isApplicable, matchFailAsException, mostSpecific, numParameters, overrideEquivalent, resolveParameterTypesapply, check0, check1, check2, check3, check4, checkArgCount, checkN, getSetter, getSourceLocation, isSideEffectFree, match0, match1, match2, match3, match4, matchN, maxArgs, maxArgs, minArgs, minArgs, set0, set1, setN, setSetter, setSourceLocation, toStringgetName, getProperty, getSymbol, removeProperty, setName, setProperty, setProperty, setSymbolpublic static final TypeSwitch typeSwitch
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 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