Author: larry Date: Wed Mar 7 16:18:15 2007 New Revision: 14315 Modified: doc/trunk/design/syn/S03.pod
Log: made "my Any $x; $x := [1,2,3]" a little dwammy (do what audreyt++ means :) Modified: doc/trunk/design/syn/S03.pod ============================================================================== --- doc/trunk/design/syn/S03.pod (original) +++ doc/trunk/design/syn/S03.pod Wed Mar 7 16:18:15 2007 @@ -12,9 +12,9 @@ Maintainer: Larry Wall <[EMAIL PROTECTED]> Date: 8 Mar 2004 - Last Modified: 28 Feb 2007 + Last Modified: 7 Mar 2007 Number: 3 - Version: 103 + Version: 104 =head1 Overview @@ -1001,7 +1001,17 @@ true in the above example. The binding fails if the type of the variable being bound is sufficiently -inconsistent with the type of the current declaration. +inconsistent with the type of the current declaration. Strictly speaking, +any variation on + + my Any $x; + $x := [1,2,3]; + +should fail because the type being bound is not consistent with +C<Scalar of Any>, but since the C<Any> type is not a real instantiable +type but a generic (non)constraint, and C<Scalar of Any> is sort of +a double non-constraint similar to C<Any>, we treat this situation +specially as the equivalent of binding to a typeless variable. =item * @@ -1009,7 +1019,9 @@ ::= -This does the same as C<:=> except it does it at compile time. +This does the same as C<:=> except it does it at compile time. (This implies +that the expression on the right is also evaluated at compile time; it does +not bind a lazy thunk.) =item *