1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* test/ruby/test_basicinstructions.rb: add a test to check access

instance variables on special const objects.

  All of such objects are frozen, so that we can not set instance
  variables for them. But we can read instance variables and return
  default value (nil).


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54556 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
ko1 2016-04-13 03:03:37 +00:00
parent 182f8d7e27
commit 9d25813745
2 changed files with 31 additions and 0 deletions

View file

@ -1,3 +1,12 @@
Wed Apr 13 12:00:08 2016 Koichi Sasada <ko1@atdot.net>
* test/ruby/test_basicinstructions.rb: add a test to check access
instance variables on special const objects.
All of such objects are frozen, so that we can not set instance
variables for them. But we can read instance variables and return
default value (nil).
Tue Apr 12 20:40:35 2016 Kaneko Yuichiro <spiketeika@gmail.com>
* ext/date/date_core.c (time_to_time): should preserve timezone

View file

@ -698,4 +698,26 @@ class TestBasicInstructions < Test::Unit::TestCase
assert_equal [], [*a]
assert_equal [1], [1, *a]
end
def test_special_const_instance_variables
assert_separately(%w(-W0), <<-INPUT, timeout: 60)
module M
def get
# we can not set instance variables on special const objects.
# However, we can access instance variables with default value (nil).
@ivar
end
end
class Fixnum; include M; end
class Float; include M; end
class Symbol; include M; end
class FalseClass; include M; end
class TrueClass; include M; end
class NilClass; include M; end
[123, 1.2, :sym, false, true, nil].each{|obj|
assert_equal(nil, obj.get)
}
INPUT
end
end