undefer subs before metaclass inflation
Matt S Trout [Sun, 22 Apr 2012 20:25:39 +0000 (20:25 +0000)]
Changes
lib/Moo/HandleMoose.pm

diff --git a/Changes b/Changes
index a4ae541..273687f 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,3 +1,4 @@
+  - undefer all subs before creating a concrete Moose metaclass
   - fix bug in _load_module where global vars could cause mis-detection
     of the module already being loaded
 
index 6656e14..68627cd 100644 (file)
@@ -50,6 +50,8 @@ sub inject_real_metaclass_for {
     }
   };
   my %methods = %{Role::Tiny->_concrete_methods_of($name)};
+  # needed to ensure the method body is stable and get things named
+  Sub::Defer::undefer_sub($_) for grep defined, values %methods;
   my @attrs;
   {
     # This local is completely not required for roles but harmless