From f8724987db834c4672b44a55fddb779cec24422b Mon Sep 17 00:00:00 2001 From: Jeremy Evans Date: Mon, 25 Apr 2022 13:07:35 -0700 Subject: Document beginless, endless ranges in Range class documentation --- range.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'range.c') diff --git a/range.c b/range.c index e0d27012b4..44c43047fd 100644 --- a/range.c +++ b/range.c @@ -2108,7 +2108,7 @@ range_count(int argc, VALUE *argv, VALUE range) * * Range.new(1, nil) # => 1.. * - * The literal for an endless range may be written with either two dots + * The literal for an endless range may be written with either two dots * or three. * The range has the same elements, either way. * But note that the two are not equal: @@ -2135,6 +2135,15 @@ range_count(int argc, VALUE *argv, VALUE range) * end * a # => [2, 4, 6, 8, 10] * + * A range can be both beginless and endless. For literal beginless, endless + * ranges, at least the beginning or end of the range must be given as an + * explicit nil value. It is recommended to use an explicit nil beginning and + * implicit nil end, since that is what Ruby uses for Range#inspect: + * + * (nil..) # => (nil..) + * (..nil) # => (nil..) + * (nil..nil) # => (nil..) + * * == Ranges and Other Classes * * An object may be put into a range if its class implements -- cgit v1.2.1