summaryrefslogtreecommitdiff
path: root/bootstraptest/test_rjit.rb
blob: a8a1524fe2b51666ffaa4680948221c9d561f4d1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# VM_CALL_OPT_SEND + VM_METHOD_TYPE_ATTRSET
assert_equal '1', %q{
  class Foo
    attr_writer :foo

    def bar
      send(:foo=, 1)
    end
  end

  Foo.new.bar
}

# VM_CALL_OPT_SEND + OPTIMIZED_METHOD_TYPE_CALL
assert_equal 'foo', %q{
  def bar(&foo)
    foo.send(:call)
  end

  bar { :foo }
}

# VM_CALL_OPT_SEND + OPTIMIZED_METHOD_TYPE_STRUCT_AREF
assert_equal 'bar', %q{
  def bar(foo)
    foo.send(:bar)
  end

  bar(Struct.new(:bar).new(:bar))
}