pugs-comm...@feather.perl6.nl wrote:
Author: jnthn
Date: 2009-12-10 18:09:51 +0100 (Thu, 10 Dec 2009)
New Revision: 29307
Modified:
docs/Perl6/Spec/S14-roles-and-parametric-types.pod
Log:
[spec] Kill the same type = attribute composition OK rule; now it's just always
a conflict.
Modified: docs/Perl6/Spec/S14-roles-and-parametric-types.pod
===================================================================
--- docs/Perl6/Spec/S14-roles-and-parametric-types.pod 2009-12-10 17:02:24 UTC
(rev 29306)
+++ docs/Perl6/Spec/S14-roles-and-parametric-types.pod 2009-12-10 17:09:51 UTC
(rev 29307)
@@ -185,9 +185,8 @@
class), then each role's methods can be installed in the class. If,
however, two roles try to introduce a method of the same name the
composition of the class fails. (Two C<has> attributes of the same
-name, whether public or private, are simply merged into one slot,
-provided the types are the same; otherwise, the composition fails.
-Role-private attributes are not merged, and from the viewpoint of
+name, whether public or private, are always a composition fail.
+Role-private attributes are exempt from this, and from the viewpoint of
the composition, don't even exist, except to allocate a slot for each
such attribute.)
That's great! The previous behavior was foolish, relying on assumptions that
aren't generally true, and the new version is much better. -- Darren Duncan