public class CompiledIRMethod extends JavaMethod implements IRMethodArgs, MethodArgs2, PositionAware
JavaMethod.JavaMethodN, JavaMethod.JavaMethodNBlock, JavaMethod.JavaMethodOne, JavaMethod.JavaMethodOneBlock, JavaMethod.JavaMethodOneOrN, JavaMethod.JavaMethodOneOrNBlock, JavaMethod.JavaMethodOneOrTwo, JavaMethod.JavaMethodOneOrTwoBlock, JavaMethod.JavaMethodOneOrTwoOrN, JavaMethod.JavaMethodOneOrTwoOrNBlock, JavaMethod.JavaMethodOneOrTwoOrThree, JavaMethod.JavaMethodOneOrTwoOrThreeBlock, JavaMethod.JavaMethodOneOrTwoOrThreeOrN, JavaMethod.JavaMethodOneOrTwoOrThreeOrNBlock, JavaMethod.JavaMethodThree, JavaMethod.JavaMethodThreeBlock, JavaMethod.JavaMethodThreeOrN, JavaMethod.JavaMethodThreeOrNBlock, JavaMethod.JavaMethodTwo, JavaMethod.JavaMethodTwoBlock, JavaMethod.JavaMethodTwoOrN, JavaMethod.JavaMethodTwoOrNBlock, JavaMethod.JavaMethodTwoOrThree, JavaMethod.JavaMethodTwoOrThreeBlock, JavaMethod.JavaMethodTwoOrThreeOrN, JavaMethod.JavaMethodTwoOrThreeOrNBlock, JavaMethod.JavaMethodZero, JavaMethod.JavaMethodZeroBlock, JavaMethod.JavaMethodZeroOrN, JavaMethod.JavaMethodZeroOrNBlock, JavaMethod.JavaMethodZeroOrOne, JavaMethod.JavaMethodZeroOrOneBlock, JavaMethod.JavaMethodZeroOrOneOrN, JavaMethod.JavaMethodZeroOrOneOrNBlock, JavaMethod.JavaMethodZeroOrOneOrTwo, JavaMethod.JavaMethodZeroOrOneOrTwoBlock, JavaMethod.JavaMethodZeroOrOneOrTwoOrN, JavaMethod.JavaMethodZeroOrOneOrTwoOrNBlock, JavaMethod.JavaMethodZeroOrOneOrTwoOrThree, JavaMethod.JavaMethodZeroOrOneOrTwoOrThreeBlock, JavaMethod.JavaMethodZeroOrOneOrTwoOrThreeOrN, JavaMethod.JavaMethodZeroOrOneOrTwoOrThreeOrNBlock
DynamicMethod.NativeCall
IRMethodArgs.ArgType
Modifier and Type | Field and Description |
---|---|
protected IRScope |
method |
protected java.lang.invoke.MethodHandle |
specific |
protected int |
specificArity |
protected java.lang.invoke.MethodHandle |
variable |
arity, BLOCK_METHODS, BLOCK_REST_METHODS, METHODS, REST_METHODS
builtin, callConfig, handle, implementationClass, name, nativeCall, nativeCalls, notImplemented, protectedClass, serialNumber, visibility
Constructor and Description |
---|
CompiledIRMethod(java.lang.invoke.MethodHandle variable,
IRScope method,
Visibility visibility,
RubyModule implementationClass,
boolean hasKwargs) |
CompiledIRMethod(java.lang.invoke.MethodHandle variable,
java.lang.invoke.MethodHandle specific,
int specificArity,
IRScope method,
Visibility visibility,
RubyModule implementationClass,
boolean hasKwargs) |
Modifier and Type | Method and Description |
---|---|
IRubyObject |
call(ThreadContext context,
IRubyObject self,
RubyModule clazz,
String name,
Block block)
Arity 0, with block; calls through IRubyObject[] path
|
IRubyObject |
call(ThreadContext context,
IRubyObject self,
RubyModule clazz,
String name,
IRubyObject[] args,
Block block)
The minimum 'call' method required for a dynamic method handle.
|
IRubyObject |
call(ThreadContext context,
IRubyObject self,
RubyModule clazz,
String name,
IRubyObject arg0,
Block block)
Arity 1, with block; calls through IRubyObject[] path
|
IRubyObject |
call(ThreadContext context,
IRubyObject self,
RubyModule clazz,
String name,
IRubyObject arg0,
IRubyObject arg1,
Block block)
Arity 2, with block; calls through IRubyObject[] path
|
IRubyObject |
call(ThreadContext context,
IRubyObject self,
RubyModule clazz,
String name,
IRubyObject arg0,
IRubyObject arg1,
IRubyObject arg2,
Block block)
Arity 3, with block; calls through IRubyObject[] path
|
IRubyObject |
callNoProtocol(ThreadContext context,
IRubyObject self,
RubyModule clazz,
String name,
Block block) |
IRubyObject |
callNoProtocol(ThreadContext context,
IRubyObject self,
RubyModule clazz,
String name,
IRubyObject arg0,
Block block) |
IRubyObject |
callNoProtocol(ThreadContext context,
IRubyObject self,
RubyModule clazz,
String name,
IRubyObject arg0,
IRubyObject arg1,
Block block) |
IRubyObject |
callNoProtocol(ThreadContext context,
IRubyObject self,
RubyModule clazz,
String name,
IRubyObject arg0,
IRubyObject arg1,
IRubyObject arg2,
Block block) |
DynamicMethod |
dup()
Duplicate this method, returning DynamicMethod referencing the same code
and with the same attributes.
|
Arity |
getArity()
Retrieve the arity of this method, used for reporting arity to Ruby
code.
|
String |
getFile()
Get the filename for the method.
|
java.lang.invoke.MethodHandle |
getHandleFor(int arity) |
IRScope |
getIRMethod() |
int |
getLine()
Get the line number for the method.
|
String[] |
getParameterList() |
Signature |
getSignature() |
StaticScope |
getStaticScope() |
protected void |
post(ThreadContext context) |
protected void |
pre(ThreadContext context,
StaticScope staticScope,
RubyModule implementationClass,
IRubyObject self,
String name,
Block block) |
callTrace, callTraceCompiled, checkArgumentCount, getCallerRequirement, getJavaName, init, isNative, isSingleton, postBacktraceAndScope, postBacktraceDummyScope, postBacktraceOnly, postFrameAndScope, postFrameOnly, postNoFrameDummyScope, postNoop, postScopeOnly, preBacktraceAndScope, preBacktraceDummyScope, preBacktraceOnly, preFrameAndDummyScope, preFrameAndScope, preFrameOnly, preNoFrameDummyScope, preNoop, preScopeOnly, raiseArgumentError, returnTrace, returnTraceCompiled, setArity, setCallerRequirement, setJavaName, setParameterDesc, setParameterList, setSingleton
calculateProtectedClass, call, call, call, call, call, getCallConfig, getHandle, getImplementationClass, getMethodData, getName, getNativeCall, getNativeCall, getProtectedClass, getRealMethod, getSerialNumber, getVisibility, handleBreak, handleRedo, handleReturn, init, isBuiltin, isCallableFrom, isImplementedBy, isNotImplemented, isNull, isUndefined, setCallConfig, setHandle, setImplementationClass, setIsBuiltin, setName, setNativeCall, setNativeCall, setNativeCall, setNotImplemented, setVisibility
protected final java.lang.invoke.MethodHandle variable
protected final java.lang.invoke.MethodHandle specific
protected final int specificArity
protected final IRScope method
public CompiledIRMethod(java.lang.invoke.MethodHandle variable, IRScope method, Visibility visibility, RubyModule implementationClass, boolean hasKwargs)
public CompiledIRMethod(java.lang.invoke.MethodHandle variable, java.lang.invoke.MethodHandle specific, int specificArity, IRScope method, Visibility visibility, RubyModule implementationClass, boolean hasKwargs)
public IRScope getIRMethod()
public StaticScope getStaticScope()
getStaticScope
in class JavaMethod
public java.lang.invoke.MethodHandle getHandleFor(int arity)
public Signature getSignature()
getSignature
in interface IRMethodArgs
public String[] getParameterList()
getParameterList
in interface IRMethodArgs
getParameterList
in interface MethodArgs2
getParameterList
in class JavaMethod
public Arity getArity()
DynamicMethod
getArity
in class JavaMethod
protected void post(ThreadContext context)
protected void pre(ThreadContext context, StaticScope staticScope, RubyModule implementationClass, IRubyObject self, String name, Block block)
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject[] args, Block block)
DynamicMethod
call
in class DynamicMethod
context
- The thread context for the currently executing threadself
- The 'self' or 'receiver' object to use for this callclazz
- The Ruby class against which this method is bindingname
- The incoming name used to invoke this methodargs
- The argument list to this invocationblock
- The block passed to this invocationpublic IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, Block block)
DynamicMethod
call
in class DynamicMethod
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg0, Block block)
DynamicMethod
call
in class DynamicMethod
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg0, IRubyObject arg1, Block block)
DynamicMethod
call
in class DynamicMethod
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg0, IRubyObject arg1, IRubyObject arg2, Block block)
DynamicMethod
call
in class DynamicMethod
public IRubyObject callNoProtocol(ThreadContext context, IRubyObject self, RubyModule clazz, String name, Block block) throws Throwable
Throwable
public IRubyObject callNoProtocol(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg0, Block block) throws Throwable
Throwable
public IRubyObject callNoProtocol(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg0, IRubyObject arg1, Block block) throws Throwable
Throwable
public IRubyObject callNoProtocol(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg0, IRubyObject arg1, IRubyObject arg2, Block block) throws Throwable
Throwable
public DynamicMethod dup()
DynamicMethod
dup
in class JavaMethod
public String getFile()
PositionAware
getFile
in interface PositionAware
public int getLine()
PositionAware
getLine
in interface PositionAware
Copyright © 2001-2015 JRuby. All Rights Reserved.