From 43b5ab4c23566ca687eac39813feb9e9341f887d Mon Sep 17 00:00:00 2001 From: Brian Fraser Date: Fri, 23 Mar 2012 17:36:13 -0700 Subject: toke.c: "Ambiguous use of -%s resolved as -&%s()" cleanup. --- t/lib/warnings/toke | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ toke.c | 10 ++++++---- 2 files changed, 58 insertions(+), 4 deletions(-) diff --git a/t/lib/warnings/toke b/t/lib/warnings/toke index f4ac3849ea..79f287b261 100644 --- a/t/lib/warnings/toke +++ b/t/lib/warnings/toke @@ -716,6 +716,58 @@ Ambiguous use of -fred resolved as -&fred() at - line 9. Ambiguous use of -fred resolved as -&fred() at - line 11. ######## # toke.c +use utf8; +use open qw( :utf8 :std ); +sub frèd {}; +-frèd ; +EXPECT +Ambiguous use of -frèd resolved as -&frèd() at - line 5. +######## +# toke.c +$^W = 0 ; +use utf8; +use open qw( :utf8 :std ); +sub frèd {} ; +-frèd ; +{ + no warnings 'ambiguous' ; + -frèd ; + use warnings 'ambiguous' ; + -frèd ; +} +-frèd ; +EXPECT +Ambiguous use of -frèd resolved as -&frèd() at - line 6. +Ambiguous use of -frèd resolved as -&frèd() at - line 11. +Ambiguous use of -frèd resolved as -&frèd() at - line 13. +######## +# toke.c +use utf8; +use open qw( :utf8 :std ); +sub ᒍᒘᒊ {}; +-ᒍᒘᒊ ; +EXPECT +Ambiguous use of -ᒍᒘᒊ resolved as -&ᒍᒘᒊ() at - line 5. +######## +# toke.c +$^W = 0 ; +use utf8; +use open qw( :utf8 :std ); +sub ᒍᒘᒊ {} ; +-ᒍᒘᒊ ; +{ + no warnings 'ambiguous' ; + -ᒍᒘᒊ ; + use warnings 'ambiguous' ; + -ᒍᒘᒊ ; +} +-ᒍᒘᒊ ; +EXPECT +Ambiguous use of -ᒍᒘᒊ resolved as -&ᒍᒘᒊ() at - line 6. +Ambiguous use of -ᒍᒘᒊ resolved as -&ᒍᒘᒊ() at - line 11. +Ambiguous use of -ᒍᒘᒊ resolved as -&ᒍᒘᒊ() at - line 13. +######## +# toke.c open FOO || time; open local *FOO; # should be ok EXPECT diff --git a/toke.c b/toke.c index a8509fce10..05ccb16131 100644 --- a/toke.c +++ b/toke.c @@ -6870,10 +6870,12 @@ Perl_yylex(pTHX) /* Not a method, so call it a subroutine (if defined) */ if (cv) { - if (lastchar == '-') - Perl_ck_warner_d(aTHX_ packWARN(WARN_AMBIGUOUS), - "Ambiguous use of -%s resolved as -&%s()", - PL_tokenbuf, PL_tokenbuf); + if (lastchar == '-') { + const SV *tmpsv = newSVpvn_flags( PL_tokenbuf, len ? len : strlen(PL_tokenbuf), (UTF ? SVf_UTF8 : 0) | SVs_TEMP ); + Perl_ck_warner_d(aTHX_ packWARN(WARN_AMBIGUOUS), + "Ambiguous use of -%"SVf" resolved as -&%"SVf"()", + SVfARG(tmpsv), SVfARG(tmpsv)); + } /* Check for a constant sub */ if ((sv = cv_const_sv(cv))) { its_constant: -- cgit v1.2.1