class CodeTools::AST::InvokePrimitive
Handles Rubinius.invoke_primitive
Public Class Methods
match?(line, receiver, name, arguments, privately)
click to toggle source
# File lib/rubinius/code/ast/transforms.rb, line 104 def self.match?(line, receiver, name, arguments, privately) match_send? receiver, :Rubinius, name, :invoke_primitive end
Public Instance Methods
bytecode(g)
click to toggle source
# File lib/rubinius/code/ast/transforms.rb, line 108 def bytecode(g) if @arguments.splat? raise CompileError, "splat argument passed to invoke_primitive" elsif @block raise CompileError, "block passed to invoke_primitive" end pos(g) selector = @arguments.array.shift @arguments.bytecode(g) g.invoke_primitive selector.value, @arguments.size end