Author: larry
Date: Fri Oct 20 17:01:15 2006
New Revision: 13252


"does" operator is non-associative according to S03.  Leave it that way for now.

Modified: doc/trunk/design/syn/S12.pod
--- doc/trunk/design/syn/S12.pod        (original)
+++ doc/trunk/design/syn/S12.pod        Fri Oct 20 17:01:15 2006
@@ -12,9 +12,9 @@
   Maintainer: Larry Wall <[EMAIL PROTECTED]>
   Date: 27 Oct 2004
-  Last Modified: 4 Oct 2006
+  Last Modified: 20 Oct 2006
   Number: 12
-  Version: 28
+  Version: 29
 =head1 Overview
@@ -1017,10 +1017,17 @@
     $fido does Sentry
-The C<does> operator returns the object so you can nest mixins:
+The C<does> operator is non-associative, so this is a syntax error:
     $fido does Sentry does Tricks does TailChasing does Scratch;
+You can, however, say
+    $fido does Sentry;
+    $fido does Tricks;
+    $fido does TailChasing;
+    $fido does Scratch;
 Unlike the compile-time role composition, each of these layers on a new
 mixin with a new level of inheritance, creating a new anonymous class
 for dear old Fido, so that a C<.chase> method from C<TailChasing> hides a
@@ -1028,7 +1035,7 @@
 You can also mixin a precomposed set of roles:
-    $fido does Sentry | Tricks | TailChasing | Scratch;
+    $fido does (Sentry, Tricks, TailChasing, Scratch);
 This will level the playing field for collisions among the new set of roles,
 and guarantees the creation of no more than one more anonymous class.

Reply via email to