Document that range operator '..' can not be overloaded.
authorMoritz Lenz <moritz@faui2k3.org>
Thu, 11 Apr 2013 13:17:04 +0000 (15:17 +0200)
committerJames E Keenan <jkeenan@cpan.org>
Sun, 14 Apr 2013 07:50:02 +0000 (08:50 +0100)
Also document that this means that ranges and bigint.pm do not mix perfectly.
Bump version numbers.

dist/bignum/lib/bigint.pm
lib/overload.pm

index 38aa7da..32c88bf 100644 (file)
@@ -1,7 +1,7 @@
 package bigint;
 use 5.006;
 
-$VERSION = '0.33';
+$VERSION = '0.34';
 use Exporter;
 @ISA           = qw( Exporter );
 @EXPORT_OK     = qw( PI e bpi bexp hex oct );
@@ -328,8 +328,8 @@ bigint - Transparent BigInteger support for Perl
 
 =head1 DESCRIPTION
 
-All operators (including basic math operations) are overloaded. Integer
-constants are created as proper BigInts.
+All operators (including basic math operations) except the range operator C<..>
+are overloaded. Integer constants are created as proper BigInts.
 
 Floating point constants are truncated to integer. All parts and results of
 expressions are also truncated.
@@ -608,6 +608,20 @@ This method only works on Perl v5.9.4 or later.
 
 =over 2
 
+=item ranges
+
+Perl does not allow overloading of ranges, so you can neither safely use
+ranges with bigint endpoints, nor is the iterator variable a bigint.
+
+       use 5.010;
+       for my $i (12..13) {
+         for my $j (20..21) {
+           say $i ** $j;  # produces a floating-point number,
+                          # not a big integer
+         }
+       }
+
+
 =item in_effect()
 
 This method only works on Perl v5.9.4 or later.
index ce339cd..51801d6 100644 (file)
@@ -1,6 +1,6 @@
 package overload;
 
-our $VERSION = '1.21';
+our $VERSION = '1.22';
 
 %ops = (
     with_assign         => "+ - * / % ** << >> x .",
@@ -1675,6 +1675,10 @@ coincides with the current one.
 
 Barewords are not covered by overloaded string constants.
 
+=item *
+
+The range operator C<..> cannot be overloaded.
+
 =back
 
 =cut