Change 18499 by rgs@rgs-home on 2003/01/16 20:58:59 Integrate changes to Attribute::Handlers from maint-5.8 (18404 and 18427). Subject: [PATCH] Re: Attribute::Handlers phase variance From: Richard Clamp <[EMAIL PROTECTED]> Date: Mon, 9 Dec 2002 11:10:24 +0000 Message-ID: <[EMAIL PROTECTED]>
Affected files ... ... //depot/perl/lib/Attribute/Handlers.pm#19 integrate ... //depot/perl/lib/Attribute/Handlers/t/multi.t#9 integrate Differences ... ==== //depot/perl/lib/Attribute/Handlers.pm#19 (text) ==== Index: perl/lib/Attribute/Handlers.pm --- perl/lib/Attribute/Handlers.pm#18~17978~ Fri Oct 4 21:44:10 2002 +++ perl/lib/Attribute/Handlers.pm Thu Jan 16 12:58:59 2003 @@ -137,7 +137,8 @@ %lastattr=(pkg=>$pkg,ref=>$ref,type=>$data); } else { - my $handler = $pkg->can($attr); + my $type = ref $ref; + my $handler = $pkg->can("_ATTR_${type}_${attr}"); next unless $handler; my $decl = [$pkg, $ref, $attr, $data, $raw{$handler}, $phase{$handler}]; ==== //depot/perl/lib/Attribute/Handlers/t/multi.t#9 (text) ==== Index: perl/lib/Attribute/Handlers/t/multi.t --- perl/lib/Attribute/Handlers/t/multi.t#8~17113~ Sat Jun 8 13:19:28 2002 +++ perl/lib/Attribute/Handlers/t/multi.t Thu Jan 16 12:58:59 2003 @@ -184,3 +184,20 @@ ok( $match, 52 ); } + +# The next two check for the phase invariance that Marcel spotted. +# Subject: Attribute::Handlers phase variance +# Message-Id: <[EMAIL PROTECTED]> + +my ($code_applied, $scalar_applied); +sub Scotty :ATTR(CODE,BEGIN) { $code_applied = $_[5] } +{ +no warnings 'redefine'; +sub Scotty :ATTR(SCALAR,CHECK) { $scalar_applied = $_[5] } +} + +sub warp_coil :Scotty {} +my $photon_torpedo :Scotty; + +ok( $code_applied eq 'BEGIN', 53, "# phase variance" ); +ok( $scalar_applied eq 'CHECK', 54 ); End of Patch.