Don’t warn for open(foo::bar)
authorFather Chrysostomos <sprout@cpan.org>
Sun, 25 Dec 2011 00:58:54 +0000 (16:58 -0800)
committerFather Chrysostomos <sprout@cpan.org>
Sun, 25 Dec 2011 03:14:24 +0000 (19:14 -0800)
t/lib/warnings/toke
toke.c

index 25d53a0..13fcc1e 100644 (file)
@@ -662,6 +662,7 @@ open FOO || time;
     open FOO || time;
 }
 open FOO || time;
+open Foo::BAR; # this should not warn
 EXPECT
 Precedence problem: open FOO should be open(FOO) at - line 3.
 Precedence problem: open FOO should be open(FOO) at - line 8.
diff --git a/toke.c b/toke.c
index c6e0097..db743e9 100644 (file)
--- a/toke.c
+++ b/toke.c
@@ -7681,6 +7681,7 @@ Perl_yylex(pTHX)
                if ( *t && strchr("|&*+-=!?:.", *t) && ckWARN_d(WARN_PRECEDENCE)
                    /* [perl #16184] */
                    && !(t[0] == '=' && t[1] == '>')
+                   && !(t[0] == ':' && t[1] == ':')
                    && !keyword(s, d-s, 0)
                ) {
                    int parms_len = (int)(d-s);