public abstract class SpecializedMethod extends Object
In general as there may not be a 1-1 mapping between objects and the specialized methods this class is responsible for performing the mapping.
Specialized methods must have a static 'invoke' method that matches the given signature and return type.
| Modifier and Type | Field and Description |
|---|---|
protected int |
id
This specialized method's id
|
| Modifier | Constructor and Description |
|---|---|
protected |
SpecializedMethod(int id) |
| Modifier and Type | Method and Description |
|---|---|
protected CompiledMethod |
compileSpecializedMethod(RVMMethod template,
TypeReference[] specializedParams)
Compile a specialized version of a template method.
|
abstract TypeReference |
getReturnType() |
abstract TypeReference[] |
getSignature() |
abstract CodeArray |
specializeMethod(RVMType type) |
protected final int id
protected SpecializedMethod(int id)
public abstract CodeArray specializeMethod(RVMType type)
type - the type whose specialzed method is to be returnedpublic abstract TypeReference[] getSignature()
public abstract TypeReference getReturnType()
protected CompiledMethod compileSpecializedMethod(RVMMethod template, TypeReference[] specializedParams)
template - The method to use as a templatespecializedParams - The known types of the parameters, possibly more refined than in the template