develooper Front page | perl.perl6.language | Postings from March 2009

r25911 - docs/Perl6/Spec

March 19, 2009 13:35
r25911 - docs/Perl6/Spec
Message ID:
Author: lwall
Date: 2009-03-19 21:35:30 +0100 (Thu, 19 Mar 2009)
New Revision: 25911

mark recent remarks as only for post-6.0.0

Modified: docs/Perl6/Spec/S12-objects.pod
--- docs/Perl6/Spec/S12-objects.pod	2009-03-19 19:14:28 UTC (rev 25910)
+++ docs/Perl6/Spec/S12-objects.pod	2009-03-19 20:35:30 UTC (rev 25911)
@@ -14,7 +14,7 @@
   Date: 27 Oct 2004
   Last Modified: 19 Mar 2009
   Number: 12
-  Version: 78
+  Version: 79
 =head1 Overview
@@ -1335,6 +1335,19 @@
 preferred if the constraint matches, and otherwise the second is
+=head2 Multiple constraints
+[Conjecture: This entire section is considered a guess at our
+post-6.0.0 direction.  For 6.0.0 we will allow only a single constraint
+before the variable, and post constraints will all be considered
+"epsilon" narrower than the single type on the left.  The single
+constraint on the left may, however, be a value like 0 or a named
+subset type.  Such a named subset type may be predeclared with an
+arbitrarily complex C<where> clause; for 6.0.0 any structure type
+information inferrable from the C<where> clause will be ignored,
+and the declared subset type will simply be considered nominally
+derived from the C<of> type mentioned in the same declaration.]
 More generally, a parameter can have a set of constraints, and
 the set of constraints defines the formal type of the parameter,
 as visible to the signature.  (No one constraint is priviledged as
@@ -1349,7 +1362,7 @@
 The sigil is actually a constraint on the container, so the actual
 type of the parameter above is something like:
-    Positional[role { does Foo; does Bar; }]
+    Positional[subset :: of Any where Foo & Bar }]
 Static C<where> clauses also count as part of the official type.
 A C<where> clause is considered static if it can be applied to Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About