6 use Test::More tests => 5 + 4;
11 BEGIN { require Lexical::Types; }
14 eval 'package Str; package Int';
15 Lexical::Types->import(
16 as => sub { __PACKAGE__, 'new_' . lc($_[0]) }
21 Lexical::Types->unimport;
25 $_[1] = 'str:' . (caller(0))[2];
26 local $Test::Builder::Level = $Test::Builder::Level + 1;
27 Test::More::is($_[2], 'Str', 'original type is correct');
32 $_[1] = (caller(0))[2];
33 local $Test::Builder::Level = $Test::Builder::Level + 1;
34 Test::More::is($_[2], 'Int', 'original type is correct');
40 BEGIN { MyTypes->import }
42 is $x, 'str:' . (__LINE__-1), 'MyTypes->new_str 1';
44 BEGIN { MyTypes->unimport }
46 is $y, undef, 'pragma not in use';
48 BEGIN { MyTypes->import }
50 is $z, __LINE__-1, 'MyTypes->new_int 1';
54 is $y, 'str:' . (__LINE__-1), 'MyTypes->new_str 2';
56 is $z, __LINE__-1, 'MyTypes->new_int 2';