Weaken anonymous roles in the metaclass lookup table so that they can eventually...
Shawn M Moore [Wed, 26 Nov 2008 02:02:02 +0000 (02:02 +0000)]
lib/Moose/Meta/Role.pm
t/030_roles/036_free_anonymous_roles.t

index 7e44f09..9145fbf 100644 (file)
@@ -519,6 +519,9 @@ sub create {
         }
     }
 
+    Class::MOP::weaken_metaclass($meta->name)
+        if $meta->is_anon_role;
+
     return $meta;
 }
 
index a17622d..c243655 100644 (file)
@@ -22,8 +22,5 @@ do {
 
 };
 
-TODO: {
-    local $TODO = "we don't weaken role metaclasses yet";
-    ok(!$weak, "the role metaclass is freed after its last reference (from a consuming anonymous class) is freed");
-};
+ok(!$weak, "the role metaclass is freed after its last reference (from a consuming anonymous class) is freed");