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:
parent
182f8d7e27
commit
9d25813745
2 changed files with 31 additions and 0 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue