This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
make sure the prototype actually matches
authorTony Cook <tony@develop-help.com>
Fri, 28 Jun 2013 01:55:27 +0000 (11:55 +1000)
committerTony Cook <tony@develop-help.com>
Fri, 28 Jun 2013 04:53:12 +0000 (14:53 +1000)
because:

a) I think it better demonstrates the fix, the following failed without
the patch:

./perl -Ilib -le 'my $proto = "\x{30cd}"; eval "sub f($proto) {}"; print prototype(\&f); print prototype(\&f) eq $proto'

b) I can envision bugs that might preserve UTF-8 but mis-manage the content

t/op/lexsub.t

index c77b2ff..d717f42 100644 (file)
@@ -8,7 +8,7 @@ BEGIN {
     *bar::like = *like;
 }
 no warnings 'deprecated';
-plan 137;
+plan 138;
 
 # -------------------- Errors with feature disabled -------------------- #
 
@@ -432,6 +432,7 @@ package main;
   my $coderef = eval "my sub foo (\$\x{30cd}) {1}; \\&foo";
   my $proto = prototype $coderef;
   ok(utf8::is_utf8($proto), "my sub with UTF8 proto maintains the UTF8ness");
+  is($proto, "\$\x{30cd}", "check the prototypes actually match");
 }
 {
   my sub if() { 44 }