From 1d3c07633c1e85c9499c1dec2169bad9fa4ff9f1 Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 23 Oct 2015 04:51:35 +0000 Subject: test_call.rb: add tests * test_call.rb (test_safe_call): Add test cases for safe navigation operator assignment. [Fix GH-1064] Validate: * can assign an attribute which is `nil` * can "or assign" an attribute which is `nil` git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 8 ++++++++ test/ruby/test_call.rb | 6 +++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 3bd62ab4a5..ac2c9a68c2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Fri Oct 23 13:51:33 2015 yui-knk + + * test_call.rb (test_safe_call): Add test cases for safe + navigation operator assignment. [Fix GH-1064] + Validate: + * can assign an attribute which is `nil` + * can "or assign" an attribute which is `nil` + Fri Oct 23 11:58:21 2015 Nobuyoshi Nakada * compile.c (iseq_peephole_optimize): optimize lengthy safe diff --git a/test/ruby/test_call.rb b/test/ruby/test_call.rb index 33eec70f6a..d2406743af 100644 --- a/test/ruby/test_call.rb +++ b/test/ruby/test_call.rb @@ -33,7 +33,7 @@ class TestCall < Test::Unit::TestCase end def test_safe_call - s = Struct.new(:x, :y) + s = Struct.new(:x, :y, :z) o = s.new("x") assert_equal("X", o.x.?upcase) assert_nil(o.y.?upcase) @@ -42,6 +42,10 @@ class TestCall < Test::Unit::TestCase assert_equal(6, o.x) o.?x *= 7 assert_equal(42, o.x) + o.?y = 5 + assert_equal(5, o.y) + o.?z ||= 6 + assert_equal(6, o.z) o = nil assert_nil(o.?x) -- cgit v1.2.3