diff options
author | Jesse Luehrs <doy@tozt.net> | 2011-03-04 12:33:39 -0600 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2011-03-04 12:33:39 -0600 |
commit | 3126316894b74934d9192c69ec580be1abd1c589 (patch) | |
tree | 2f510ef0f80d1d7f26d5e7fea01efe60eaac8922 /t | |
parent | be41f2111b3fa566459f4ecacfa111c95c037cb1 (diff) | |
download | package-stash-xs-3126316894b74934d9192c69ec580be1abd1c589.tar.gz package-stash-xs-3126316894b74934d9192c69ec580be1abd1c589.zip |
make the namespace cache lazy and weak, in case the stash is deleted
Diffstat (limited to 't')
-rwxr-xr-x | t/07-edge-cases.t | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/t/07-edge-cases.t b/t/07-edge-cases.t index 4f61ca2..acd92e8 100755 --- a/t/07-edge-cases.t +++ b/t/07-edge-cases.t @@ -66,4 +66,19 @@ is(exception { $Bar->add_symbol('$bar', \$bar) }, undef, use_ok('CompileTime'); +{ + package Gets::Deleted; + sub bar { } +} + +{ + my $delete = Package::Stash->new('Gets::Deleted'); + ok($delete->has_symbol('&bar'), "sees the method"); + { + no strict 'refs'; + delete ${'main::Gets::'}{'Deleted::'}; + } + ok(!$delete->has_symbol('&bar'), "method goes away when stash is deleted"); +} + done_testing; |