some style tweaks to t0m's change to the metaclass compat fixing code.
Dave Rolsky [Thu, 7 May 2009 02:47:37 +0000 (21:47 -0500)]
lib/Moose/Meta/Class.pm

index b1c642d..25a9fa6 100644 (file)
@@ -308,18 +308,20 @@ sub _fix_metaclass_incompatibility {
         my $meta = Class::MOP::Class->initialize($super);
 
         my @all_supers = $meta->linearized_isa;
-        shift(@all_supers); # Discard self
-        my @super_metas_to_fix = ( $meta );
-
-        # We need to check&fix the imediate superclass, and if its @ISA contains
-        # a class without a metaclass instance, followed by a class with a
-        # metaclass instance, init a metaclass instance for classes without
-        # one and fix compat up to and including the class which was already
-        # initialized.
+        shift @all_supers;
+
+        my @super_metas_to_fix = ($meta);
+
+        # We need to check & fix the immediate superclass. If its @ISA
+        # contains a class without a metaclass instance, followed by a
+        # class _with_ a metaclass instance, init a metaclass instance
+        # for classes without one and fix compat up to and including
+        # the class which was already initialized.
         my $idx = first_index { Class::MOP::class_of($_) } @all_supers;
-        push(@super_metas_to_fix,
-            map { Class::MOP::Class->initialize($_) } @all_supers[0..$idx]
-        ) if ($idx >= 0);
+
+        push @super_metas_to_fix,
+            map { Class::MOP::Class->initialize($_) } @all_supers[ 0 .. $idx ]
+            if $idx >= 0;
 
         foreach my $super_meta (@super_metas_to_fix) {
             $self->_fix_one_incompatible_metaclass($super_meta);
@@ -338,6 +340,7 @@ sub _fix_one_incompatible_metaclass {
             . $self->name
             . ", it isn't pristine" );
     }
+
     $self->_reconcile_with_superclass_meta($meta);
 }