summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-12-17 20:10:08 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-12-17 20:10:08 +0900
commit545c5eecc0e671e51bbff201a6a5e74d0c692066 (patch)
treed7b084071134f78d9a5515e316faeea775581407
parent5b203ead1e5f642af7bbb2c1b4d28cf4c5737633 (diff)
parent4319eaaa45ce26e73cfac6e1c8b724e35680577b (diff)
downloadmruby-545c5eecc0e671e51bbff201a6a5e74d0c692066.tar.gz
mruby-545c5eecc0e671e51bbff201a6a5e74d0c692066.zip
Merge branch 'h2so5-string-nil-index'
-rw-r--r--src/string.c4
-rw-r--r--test/t/string.rb4
2 files changed, 8 insertions, 0 deletions
diff --git a/src/string.c b/src/string.c
index 1c54ffa72..aa26b261c 100644
--- a/src/string.c
+++ b/src/string.c
@@ -781,6 +781,10 @@ num_index:
}
}
default:
+ indx = mrb_Integer(mrb, indx);
+ if (mrb_nil_p(indx)) {
+ mrb_raise(mrb, E_TYPE_ERROR, "can't convert to Fixnum");
+ }
idx = mrb_fixnum(indx);
goto num_index;
}
diff --git a/test/t/string.rb b/test/t/string.rb
index a56862fe2..63e4af000 100644
--- a/test/t/string.rb
+++ b/test/t/string.rb
@@ -72,6 +72,10 @@ assert('String#[]', '15.2.10.5.6') do
assert_equal 'bc', e1
assert_equal 'bc', a3
assert_nil b3
+
+ assert_raise(TypeError) do
+ a[nil]
+ end
end
assert('String#[] with Range') do