make the namespace cache lazy and weak, in case the stash is deleted
[gitmo/Package-Stash.git] / t / 07-edge-cases.t
index 4f61ca2..acd92e8 100755 (executable)
@@ -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;