summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/range.c2
-rw-r--r--test/t/range.rb7
2 files changed, 5 insertions, 4 deletions
diff --git a/src/range.c b/src/range.c
index 079a1035e..7b304011a 100644
--- a/src/range.c
+++ b/src/range.c
@@ -229,7 +229,7 @@ mrb_range_include(mrb_state *mrb, mrb_value range)
end = r->edges->end;
include_p = r_le(mrb, beg, val) && /* beg <= val */
((r->excl && r_gt(mrb, end, val)) || /* end > val */
- (r_ge(mrb, end, val))); /* end >= val */
+ (!r->excl && r_ge(mrb, end, val))); /* end >= val */
return mrb_bool_value(include_p);
}
diff --git a/test/t/range.rb b/test/t/range.rb
index 278b26902..2ff89de4c 100644
--- a/test/t/range.rb
+++ b/test/t/range.rb
@@ -43,10 +43,11 @@ assert('Range#first', '15.2.14.4.7') do
end
assert('Range#include?', '15.2.14.4.8') do
- a = (1..10)
+ assert_true (1..10).include?(10)
+ assert_false (1..10).include?(11)
- assert_true a.include?(5)
- assert_false a.include?(20)
+ assert_true (1...10).include?(9)
+ assert_false (1...10).include?(10)
end
assert('Range#initialize', '15.2.14.4.9') do