class CodeTools::AST::AttributeAssignment
Public Class Methods
new(line, receiver, name, arguments)
click to toggle source
# File lib/rubinius/code/ast/sends.rb, line 209 def initialize(line, receiver, name, arguments) @line = line @receiver = receiver @privately = receiver.kind_of?(Self) ? true : false @name = :"#{name}=" @arguments = Arguments.new line, arguments end
Public Instance Methods
bytecode(g, anddot=false)
click to toggle source
# File lib/rubinius/code/ast/sends.rb, line 220 def bytecode(g, anddot=false) @receiver.bytecode(g) unless anddot if g.state.masgn? g.swap g.send @name, 1, @privately else @arguments.bytecode(g) g.dup if @arguments.splat? g.move_down @arguments.size + 2 g.swap g.push_tagged_nil 0 g.send_with_splat @name, @arguments.size, @privately, true else g.move_down @arguments.size + 1 g.send @name, @arguments.size, @privately end g.pop end end
sexp_name()
click to toggle source
# File lib/rubinius/code/ast/sends.rb, line 243 def sexp_name :attrasgn end