Author: Darren_Duncan
Date: 2009-10-05 10:00:51 +0200 (Mon, 05 Oct 2009)
New Revision: 28619

Spec S03 : added cases where a Range is considered empty

Modified: docs/Perl6/Spec/S03-operators.pod
--- docs/Perl6/Spec/S03-operators.pod   2009-10-05 06:58:07 UTC (rev 28618)
+++ docs/Perl6/Spec/S03-operators.pod   2009-10-05 08:00:51 UTC (rev 28619)
@@ -3079,12 +3079,12 @@
 inclusive of the endpoints, whereas 1^..^2 excludes the endpoints
 but matches any real number in between.
-Range objects support C<.min> and a C<.max> methods representing
+Range objects support C<.min> and C<.max> methods representing
 their left and right arguments.  The C<.minmax> method returns both
 values as a two-element list representing the interval.  Ranges are
 not autoreversing: C<2..1> is always a null range.
-Range objects support the C<.excl_min> and C<.excl_max> methods
+Range objects support C<.excl_min> and C<.excl_max> methods
 representing the exclusion (has C<^>) or inclusion (no C<^>) of each
 endpoint in the Range.
@@ -3140,7 +3140,11 @@
     May..*      # May through December
 An empty range cannot be iterated; it returns a C<Nil> instead.  An empty
-range still has a defined min and max, but the min is greater than the max.
+range still has a defined C<.min> and C<.max>, but one of the following is
+true:  1. The C<.min> is greater than the C<.max>.  2. The C<.min> is equal
+to the C<.max> I<and> at least one of C<.excl_min> or C<.excl_max> is true.
+3. Both C<.excl_min> and C<.excl_max> are true I<and> C<.min> and C<.max>
+are consecutive values.
 Ranges that are iterated transmute into the corresponding series operator,
 and hence use C<!after> semantics to determine an end to the sequence.

Reply via email to