diff options
-rw-r--r-- | t/uni/parser.t | 8 | ||||
-rw-r--r-- | toke.c | 4 |
2 files changed, 10 insertions, 2 deletions
diff --git a/t/uni/parser.t b/t/uni/parser.t index 256864cb80..63c2deba68 100644 --- a/t/uni/parser.t +++ b/t/uni/parser.t @@ -7,7 +7,7 @@ BEGIN { require './test.pl'; } -plan (tests => 45); +plan (tests => 47); use utf8; use open qw( :utf8 :std ); @@ -138,3 +138,9 @@ is ${"main::\345\225\217"}, undef, "..and using the encoded form doesn't"; eval qq!print \x{30cb}, "comma""!; like $@, qr/No comma allowed after filehandle/, "No comma allowed after filehandle triggers correctly for UTF-8 filehandles."; } + +# tests for "Bad name" +eval q{ Foo::$bar }; +like( $@, qr/Bad name after Foo::/, 'Bad name after Foo::' ); +eval q{ Foo''bar }; +like( $@, qr/Bad name after Foo'/, 'Bad name after Foo\'' ); @@ -6659,7 +6659,9 @@ Perl_yylex(pTHX) s = scan_word(s, PL_tokenbuf + len, sizeof PL_tokenbuf - len, TRUE, &morelen); if (!morelen) - Perl_croak(aTHX_ "Bad name after %s%s", PL_tokenbuf, + Perl_croak(aTHX_ "Bad name after %"SVf"%s", + SVfARG(newSVpvn_flags(PL_tokenbuf, len, + (UTF ? SVf_UTF8 : 0) | SVs_TEMP )), *s == '\'' ? "'" : "::"); len += morelen; pkgname = 1; |