diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-12-16 10:25:21 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-12-16 10:25:21 +0000 |
commit | c5601931c2fa27cf0a38df028654c67163eeb528 (patch) | |
tree | 1d90576d097c02095fc89d9820955659ea2ffd29 | |
parent | 5515c5642eea08452f57b1bcd90f66a3ee91836c (diff) |
class.c: fix option hash
* class.c (rb_scan_args): if no keywords is given return nil as
the option hash.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44244 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | class.c | 2 | ||||
-rw-r--r-- | test/ruby/test_io.rb | 3 |
2 files changed, 4 insertions, 1 deletions
@@ -1788,7 +1788,7 @@ rb_scan_args(int argc, const VALUE *argv, const char *fmt, ...) if (!NIL_P(hash)) { VALUE opts = rb_extract_keywords(&hash); if (!hash) argc--; - hash = opts; + hash = opts ? opts : Qnil; } } } diff --git a/test/ruby/test_io.rb b/test/ruby/test_io.rb index 4dc7599b99..8eb94e367a 100644 --- a/test/ruby/test_io.rb +++ b/test/ruby/test_io.rb @@ -2981,6 +2981,9 @@ End File.unlink(path) IO.write(path, "foo", encoding: Encoding::UTF_32BE) assert_equal("\0\0\0f\0\0\0o\0\0\0o", File.binread(path)) + assert_raise(TypeError) { + IO.write(path, "foo", Object.new => Object.new) + } ensure t.close! end |