summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael Garcia-Suarez <rgarciasuarez@gmail.com>2004-03-09 20:29:02 +0000
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2004-03-09 20:29:02 +0000
commitc06afda3f4cb19de0bd845a7474113ae2adf78be (patch)
tree09ca836b628fbef83bad97124607e5af6b466dea
parent1dc8b354593b922ff229cded67bcb62f8d1d66d4 (diff)
downloadperl-c06afda3f4cb19de0bd845a7474113ae2adf78be.tar.gz
Improve the "Prototype mismatch" error message when
the redefined subroutine didn't have any prototype. p4raw-id: //depot/perl@22474
-rw-r--r--op.c2
-rwxr-xr-xt/comp/redef.t4
2 files changed, 4 insertions, 2 deletions
diff --git a/op.c b/op.c
index ca24417157..b695a63553 100644
--- a/op.c
+++ b/op.c
@@ -3911,6 +3911,8 @@ Perl_cv_ckproto(pTHX_ CV *cv, GV *gv, char *p)
Perl_sv_catpvf(aTHX_ msg, " sub %"SVf, name);
if (SvPOK(cv))
Perl_sv_catpvf(aTHX_ msg, " (%"SVf")", (SV *)cv);
+ else
+ Perl_sv_catpvf(aTHX_ msg, ": none");
sv_catpv(msg, " vs ");
if (p)
Perl_sv_catpvf(aTHX_ msg, "(%s)", p);
diff --git a/t/comp/redef.t b/t/comp/redef.t
index 328b44d3c8..63be16c2ff 100755
--- a/t/comp/redef.t
+++ b/t/comp/redef.t
@@ -23,13 +23,13 @@ ok 1, $warn =~ s/Subroutine sub0 redefined[^\n]+\n//s;
sub sub1 { 1 }
sub sub1 () { 2 }
-ok 2, $warn =~ s/$NEWPROTO \Qsub main::sub1 vs ()\E[^\n]+\n//s;
+ok 2, $warn =~ s/$NEWPROTO \Qsub main::sub1: none vs ()\E[^\n]+\n//s;
ok 3, $warn =~ s/Subroutine sub1 redefined[^\n]+\n//s;
sub sub2 { 1 }
sub sub2 ($) { 2 }
-ok 4, $warn =~ s/$NEWPROTO \Qsub main::sub2 vs ($)\E[^\n]+\n//s;
+ok 4, $warn =~ s/$NEWPROTO \Qsub main::sub2: none vs ($)\E[^\n]+\n//s;
ok 5, $warn =~ s/Subroutine sub2 redefined[^\n]+\n//s;
sub sub3 () { 1 }