In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/d5e98372e6efc414e818f1ed2d33156eb6ca6200?hp=4477f4efa618ad1dc98479d6c1631bb62963bc70>

- Log -----------------------------------------------------------------
commit d5e98372e6efc414e818f1ed2d33156eb6ca6200
Author: Vincent Pit <[email protected]>
Date:   Sat May 9 14:19:19 2009 +0200

    Allow typed arrays and hashes
-----------------------------------------------------------------------

Summary of changes:
 ext/Attribute-Handlers/t/multi.t |   20 ++++++++++++++++++++
 op.c                             |    8 --------
 t/op/attrs.t                     |    7 +++++--
 3 files changed, 25 insertions(+), 10 deletions(-)

diff --git a/ext/Attribute-Handlers/t/multi.t b/ext/Attribute-Handlers/t/multi.t
index a8156c2..31b24d1 100644
--- a/ext/Attribute-Handlers/t/multi.t
+++ b/ext/Attribute-Handlers/t/multi.t
@@ -7,6 +7,10 @@ BEGIN {
     }
 }
 
+# This test file contains 57 tests.
+# You need to number them manually. Don't forget to update this line for the
+# next kind hacker.
+
 END {print "not ok 1\n" unless $loaded;}
 use v5.6.0;
 use Attribute::Handlers;
@@ -56,6 +60,22 @@ sub x1 :Lastly(1,44) {}
 
 my Test $x2 :Dokay(1,5);
 
+if ($] < 5.011) {
+ ::ok(1, $_, '# skip : invalid before 5.11') for 55 .. 57;
+} else {
+ my $c = $::count;
+ eval '
+  my Test @x2 :Dokay(1,55);
+  my Test %x2 :Dokay(1,56);
+ ';
+ $c = $c + 2 - $::count;
+ while ($c > 0) {
+  ::ok(0, 57 - $c);
+  --$c;
+ }
+ ::ok(!$@, 57);
+}
+
 package Test;
 my $x3 :Dokay(1,6);
 my Test $x4 :Dokay(1,7);
diff --git a/op.c b/op.c
index be98c3f..63530b3 100644
--- a/op.c
+++ b/op.c
@@ -399,14 +399,6 @@ Perl_allocmy(pTHX_ const char *const name)
     /* check for duplicate declaration */
     pad_check_dup(name, is_our, (PL_curstash ? PL_curstash : PL_defstash));
 
-    if (PL_parser->in_my_stash && *name != '$') {
-       yyerror(Perl_form(aTHX_
-                   "Can't declare class for non-scalar %s in \"%s\"",
-                    name,
-                    is_our ? "our"
-                           : PL_parser->in_my == KEY_state ? "state" : "my"));
-    }
-
     /* allocate a spare slot and store the name in that slot */
 
     off = pad_add_name(name,
diff --git a/t/op/attrs.t b/t/op/attrs.t
index 5ba0fda..5e75e50 100644
--- a/t/op/attrs.t
+++ b/t/op/attrs.t
@@ -10,7 +10,7 @@ BEGIN {
     require './test.pl';
 }
 
-plan 83;
+plan 84;
 
 $SIG{__WARN__} = sub { die @_ };
 
@@ -82,7 +82,10 @@ eval 'my A $x : plugh;';
 is $@, '';
 
 eval 'package Cat; my Cat @socks;';
-like $@, qr/^Can't declare class for non-scalar \...@socks in "my"/;
+like $@, '';
+
+eval 'my Cat %nap;';
+like $@, '';
 
 sub X::MODIFY_CODE_ATTRIBUTES { die "$_[0]" }
 sub X::foo { 1 }

--
Perl5 Master Repository

Reply via email to