summaryrefslogtreecommitdiffstats
path: root/t
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2011-03-04 11:59:06 -0600
committerJesse Luehrs <doy@tozt.net>2011-03-04 11:59:06 -0600
commiteb53b1bd771d2bed902655654014680ea64cf8d4 (patch)
tree85ce1876c3a64d8225285cfc4a0f326031885272 /t
parente70564920d68b0b907952e3302aa08ccb201b080 (diff)
downloadpackage-stash-eb53b1bd771d2bed902655654014680ea64cf8d4.tar.gz
package-stash-eb53b1bd771d2bed902655654014680ea64cf8d4.zip
make the namespace cache lazy and weak, in case the stash is deleted
Diffstat (limited to 't')
-rwxr-xr-xt/07-edge-cases.t15
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;