Add &CORE::prototype
authorFather Chrysostomos <sprout@cpan.org>
Mon, 30 Apr 2012 15:49:32 +0000 (08:49 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Tue, 29 May 2012 16:36:26 +0000 (09:36 -0700)
gv.c
t/op/coreamp.t
t/op/coresubs.t

diff --git a/gv.c b/gv.c
index 87a8981..c53afca 100644 (file)
--- a/gv.c
+++ b/gv.c
@@ -467,7 +467,7 @@ S_maybe_add_coresub(pTHX_ HV * const stash, GV *gv,
     case KEY_local: case KEY_lt: case KEY_m   : case KEY_map : case KEY_my:
     case KEY_ne   : case KEY_next : case KEY_no: case KEY_or: case KEY_our:
     case KEY_package: case KEY_print: case KEY_printf:
-    case KEY_prototype: case KEY_q: case KEY_qq: case KEY_qr: case KEY_qw:
+    case KEY_q    : case KEY_qq   : case KEY_qr     : case KEY_qw    :
     case KEY_qx   : case KEY_redo : case KEY_require: case KEY_return:
     case KEY_s    : case KEY_say  : case KEY_scalar : case KEY_sort  :
     case KEY_split: case KEY_state: case KEY_study  : case KEY_sub   :
index 1e9147b..e0b7246 100644 (file)
@@ -29,6 +29,7 @@ my %op_desc = (
  evalbytes=> 'eval "string"',
  join     => 'join or string',
  pos      => 'match position',
+ prototype=> 'subroutine prototype',
  readline => '<HANDLE>',
  readpipe => 'quoted execution (``, qx)',
  reset    => 'symbol reset',
@@ -619,6 +620,9 @@ is pos, 4, 'writing to &pos without args';
   is pos $x, 4, 'writing to &pos without args';
 }
 
+test_proto 'prototype';
+$tests++;
+is &myprototype(\&myprototype), prototype("CORE::prototype"), '&prototype';
 
 test_proto 'quotemeta', '$', '\$';
 
@@ -935,7 +939,7 @@ like $@, qr'^Undefined format "STDOUT" called',
       my $word = $1;
       next if
        $word =~ /^(?:s(?:t(?:ate|udy)|(?:pli|or)t|calar|ay|ub)?|d(?:ef
-                  ault|ump|o)|p(?:r(?:ototype|intf?)|ackag
+                  ault|ump|o)|p(?:rintf?|ackag
                   e)|e(?:ls(?:if|e)|val|q)|g(?:[et]|iven|oto
                   |rep)|u(?:n(?:less|def|til)|se)|l(?:(?:as)?t|ocal|e)|re
                   (?:quire|turn|do)|__(?:DATA|END)__|for(?:each|mat)?|(?:
index 8fcdb14..3c1e0f4 100644 (file)
@@ -19,7 +19,7 @@ my %unsupported = map +($_=>1), qw (
  __DATA__ __END__ AUTOLOAD BEGIN UNITCHECK CORE DESTROY END INIT CHECK and
   cmp default do dump else elsif eq eval for foreach
   format ge given goto grep gt if last le local lt m map my ne next
-  no or our package print printf prototype q qq qr qw qx  redo  require
+  no  or  our  package  print  printf  q  qq  qr  qw  qx  redo  require
   return s say scalar sort split state study sub tr undef unless until use
   when while x xor y
 );
@@ -95,7 +95,8 @@ while(<$kh>) {
       next if ($proto =~ /\@/);
       # These ops currently accept any number of args, despite their
       # prototypes, if they have any:
-      next if $word =~ /^(?:chom?p|exec|keys|each|not|read(?:lin|pip)e
+      next if $word =~ /^(?:chom?p|exec|keys|each|not
+                           |(?:prototyp|read(?:lin|pip))e
                            |reset|system|values|l?stat)|evalbytes/x;
 
       $tests ++;