+++ /dev/null
-#!perl -T
-
-use strict;
-use warnings;
-
-use Test::More tests => 5 + 4;
-
-{
- package MyTypes;
-
- BEGIN { require Lexical::Types; }
-
- sub import {
- eval 'package Str; package Int';
- Lexical::Types->import(
- as => sub { __PACKAGE__, 'new_' . lc($_[0]) }
- );
- }
-
- sub unimport {
- Lexical::Types->unimport;
- }
-
- sub new_str {
- $_[1] = 'str:' . (caller(0))[2];
- Test::More::is($_[2], 'Str', 'original type is correct');
- ();
- }
-
- sub new_int {
- $_[1] = (caller(0))[2];
- Test::More::is($_[2], 'Int', 'original type is correct');
- ();
- }
-}
-
-{
- BEGIN { MyTypes->import }
- my Str $x;
- is $x, 'str:' . (__LINE__-1), 'MyTypes->new_str 1';
- {
- BEGIN { MyTypes->unimport }
- my Str $y;
- is $y, undef, 'pragma not in use';
- {
- BEGIN { MyTypes->import }
- my Int $z;
- is $z, __LINE__-1, 'MyTypes->new_int 1';
- }
- }
- my Str $y;
- is $y, 'str:' . (__LINE__-1), 'MyTypes->new_str 2';
- my Int $z;
- is $z, __LINE__-1, 'MyTypes->new_int 2';
-}