ruby--ruby/ext/rubyvm/lib/forwardable/impl.rb

20 lines
483 B
Ruby

# :stopdoc:
module Forwardable
FILTER_EXCEPTION = ""
def self._valid_method?(method)
iseq = RubyVM::InstructionSequence.compile("().#{method}", nil, nil, 0, false)
rescue SyntaxError
false
else
iseq.to_a.dig(-1, 1, 1, :mid) == method.to_sym
end
def self._compile_method(src, file, line)
RubyVM::InstructionSequence.compile(src, file, file, line,
trace_instruction: false,
tailcall_optimization: true)
.eval
end
end