From 39c882dbc98f9882c1734a8ce9110ac8b59b2741 Mon Sep 17 00:00:00 2001 From: Nicholas Clark Date: Wed, 29 Nov 2006 10:19:19 +0000 Subject: [PATCH] Fix Attribute::Handlers to cope with proxy constant subroutines. p4raw-id: //depot/perl@29414 --- MANIFEST | 1 + lib/Attribute/Handlers.pm | 1 + lib/Attribute/Handlers/t/constants.t | 13 +++++++++++++ 3 files changed, 15 insertions(+) create mode 100644 lib/Attribute/Handlers/t/constants.t diff --git a/MANIFEST b/MANIFEST index 38ca45f..468272f 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1392,6 +1392,7 @@ lib/Attribute/Handlers/demo/Descriptions.pm Attribute::Handlers demo lib/Attribute/Handlers/demo/MyClass.pm Attribute::Handlers demo lib/Attribute/Handlers.pm Attribute::Handlers lib/Attribute/Handlers/README Attribute::Handlers +lib/Attribute/Handlers/t/constants.t Test constants and Attribute::Handlers lib/Attribute/Handlers/t/linerep.t See if Attribute::Handlers works lib/Attribute/Handlers/t/multi.t See if Attribute::Handlers works lib/attributes.pm For "sub foo : attrlist" diff --git a/lib/Attribute/Handlers.pm b/lib/Attribute/Handlers.pm index 35484be..6bd121b 100644 --- a/lib/Attribute/Handlers.pm +++ b/lib/Attribute/Handlers.pm @@ -16,6 +16,7 @@ sub findsym { no strict 'refs'; foreach my $sym ( values %{$pkg."::"} ) { use strict; + next unless ref ( \$sym ) eq 'GLOB'; return $symcache{$pkg,$ref} = \$sym if *{$sym}{$type} && *{$sym}{$type} == $ref; } diff --git a/lib/Attribute/Handlers/t/constants.t b/lib/Attribute/Handlers/t/constants.t new file mode 100644 index 0000000..746a87e --- /dev/null +++ b/lib/Attribute/Handlers/t/constants.t @@ -0,0 +1,13 @@ +BEGIN { + if ($ENV{PERL_CORE}) { + chdir 't' if -d 't'; + @INC = '../lib'; + } +} +use strict; +use Test::More tests => 1; +use Attribute::Handlers; +# This had been failing since the introduction of proxy constant subroutines +use constant SETUP => undef; +sub Test : ATTR(CODE) { }; +ok(1, "If we got here, CHECK didn't fail"); -- 2.7.4