X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F13-padsv.t;h=ab042aee6968be0964360d462b7c5687b6f58d70;hb=f2118cbc4d0c80ad8b78ea39fa328eb3080c4277;hp=e5409bc5ca446f73c728ceae03fb8315c85977de;hpb=fddda72b93c368843c49a680eda2953c4c139676;p=perl%2Fmodules%2FLexical-Types.git diff --git a/t/13-padsv.t b/t/13-padsv.t index e5409bc..ab042ae 100644 --- a/t/13-padsv.t +++ b/t/13-padsv.t @@ -3,7 +3,9 @@ use strict; use warnings; -use Test::More tests => 3; +use Config qw<%Config>; + +use Test::More tests => 4; sub Str::TYPEDSCALAR { my $buf = (caller(0))[2]; @@ -25,3 +27,23 @@ sub Str::TYPEDSCALAR { my $z = 7; is $z, 7, 'trick for others'; } + +my @lines; + +sub Int::TYPEDSCALAR { push @lines, (caller(0))[2]; () } + +SKIP: { + skip 'Broken with threaded perls before 5.8.4' => 1 + if $Config{useithreads} and "$]" < 5.008004; + + use Lexical::Types as => sub { + # In 5.10, this closure is compiled before hints are enabled, so no hintseval + # op is added at compile time to propagate the hints inside the eval. + # That's why we need to re-use Lexical::Types explicitely. + eval 'use Lexical::Types; my Int $x'; + @_; + }; + + my Int $x; + is_deeply \@lines, [ 1, __LINE__-1 ], 'hooking inside the \'as\' callback'; +}