Remove Moose::Meta::Object::Trait
Dave Rolsky [Thu, 1 Sep 2011 15:18:44 +0000 (10:18 -0500)]
Moved its code up to Class::MOP::Object

Fixed a few tests that used Class::MOP::Instance without first loading Class::MOP

lib/Class/MOP/Object.pm
lib/Moose/Error/Default.pm
lib/Moose/Meta/Attribute.pm
lib/Moose/Meta/Class.pm
lib/Moose/Meta/Instance.pm
lib/Moose/Meta/Method.pm
lib/Moose/Meta/Object/Trait.pm [deleted file]
lib/Moose/Meta/Role.pm
t/cmop/instance.t
t/cmop/instance_inline.t

index 9a0cdf7..40133dc 100644 (file)
@@ -5,6 +5,7 @@ use strict;
 use warnings;
 
 use Carp qw(confess);
+use Moose::Util;
 use Scalar::Util 'blessed';
 
 # introspection
@@ -73,7 +74,8 @@ sub _get_compatible_metaclass {
     my $self = shift;
     my ($other_name) = @_;
 
-    return $self->_get_compatible_metaclass_by_subclassing($other_name);
+    return $self->_get_compatible_metaclass_by_subclassing($other_name)
+        || $self->_get_compatible_metaclass_by_role_reconciliation(@_);
 }
 
 sub _get_compatible_metaclass_by_subclassing {
@@ -91,6 +93,20 @@ sub _get_compatible_metaclass_by_subclassing {
     return;
 }
 
+sub _get_compatible_metaclass_by_role_reconciliation {
+    my $self = shift;
+    my ($other_name) = @_;
+    my $meta_name = blessed($self) ? $self->_real_ref_name : $self;
+
+    return unless Moose::Util::_classes_differ_by_roles_only(
+        $meta_name, $other_name
+    );
+
+    return Moose::Util::_reconcile_roles_for_metaclass(
+        $meta_name, $other_name
+    );
+}
+
 1;
 
 # ABSTRACT: Base class for metaclasses
index b3c2f87..88ea359 100644 (file)
@@ -4,14 +4,11 @@ use strict;
 use warnings;
 
 use Carp::Heavy;
-use Class::MOP::MiniTrait;
 
 use Moose::Error::Util;
 
 use base 'Class::MOP::Object';
 
-Class::MOP::MiniTrait::apply(__PACKAGE__, 'Moose::Meta::Object::Trait');
-
 sub new {
     my ( $self, @args ) = @_;
     # can't use Moose::Error::Util::create_error here because that would break
index e347197..baf3617 100644 (file)
@@ -16,12 +16,9 @@ use Moose::Meta::Method::Accessor;
 use Moose::Meta::Method::Delegation;
 use Moose::Util ();
 use Moose::Util::TypeConstraints ();
-use Class::MOP::MiniTrait;
 
 use base 'Class::MOP::Attribute', 'Moose::Meta::Mixin::AttributeCore';
 
-Class::MOP::MiniTrait::apply(__PACKAGE__, 'Moose::Meta::Object::Trait');
-
 __PACKAGE__->meta->add_attribute('traits' => (
     reader    => 'applied_traits',
     predicate => 'has_applied_traits',
index 49114ef..b6fbaec 100644 (file)
@@ -20,12 +20,9 @@ use Moose::Meta::Method::Constructor;
 use Moose::Meta::Method::Destructor;
 use Moose::Meta::Method::Meta;
 use Moose::Util;
-use Class::MOP::MiniTrait;
 
 use base 'Class::MOP::Class';
 
-Class::MOP::MiniTrait::apply(__PACKAGE__, 'Moose::Meta::Object::Trait');
-
 __PACKAGE__->meta->add_attribute('roles' => (
     reader  => 'roles',
     default => sub { [] },
index 6cb50de..0296b6b 100644 (file)
@@ -4,12 +4,8 @@ package Moose::Meta::Instance;
 use strict;
 use warnings;
 
-use Class::MOP::MiniTrait;
-
 use base "Class::MOP::Instance";
 
-Class::MOP::MiniTrait::apply(__PACKAGE__, 'Moose::Meta::Object::Trait');
-
 1;
 
 # ABSTRACT: The Moose Instance metaclass
index 74cbe8d..c6d14fc 100644 (file)
@@ -3,12 +3,8 @@ package Moose::Meta::Method;
 use strict;
 use warnings;
 
-use Class::MOP::MiniTrait;
-
 use base 'Class::MOP::Method';
 
-Class::MOP::MiniTrait::apply(__PACKAGE__, 'Moose::Meta::Object::Trait');
-
 sub _error_thrower {
     my $self = shift;
     require Moose::Meta::Class;
diff --git a/lib/Moose/Meta/Object/Trait.pm b/lib/Moose/Meta/Object/Trait.pm
deleted file mode 100644 (file)
index ad3d752..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-
-package Moose::Meta::Object::Trait;
-
-use Scalar::Util qw(blessed);
-
-sub _get_compatible_metaclass {
-    my $orig = shift;
-    my $self = shift;
-    return $self->$orig(@_)
-        || $self->_get_compatible_metaclass_by_role_reconciliation(@_);
-}
-
-sub _get_compatible_metaclass_by_role_reconciliation {
-    my $self = shift;
-    my ($other_name) = @_;
-    my $meta_name = blessed($self) ? $self->_real_ref_name : $self;
-
-    return unless Moose::Util::_classes_differ_by_roles_only(
-        $meta_name, $other_name
-    );
-
-    return Moose::Util::_reconcile_roles_for_metaclass(
-        $meta_name, $other_name
-    );
-}
-
-1;
-
-# ABSTRACT: Some overrides for L<Class::MOP::Object> functionality
-
-__END__
-
-=pod
-
-=head1 DESCRIPTION
-
-This module is entirely private, you shouldn't ever need to interact with
-it directly.
-
-=head1 BUGS
-
-See L<Moose/BUGS> for details on reporting bugs.
-
-=cut
index 4b2d3eb..fbfac09 100644 (file)
@@ -17,14 +17,11 @@ use Moose::Meta::Role::Method::Required;
 use Moose::Meta::Role::Method::Conflicting;
 use Moose::Meta::Method::Meta;
 use Moose::Util qw( ensure_all_roles );
-use Class::MOP::MiniTrait;
 
 use base 'Class::MOP::Module',
          'Class::MOP::Mixin::HasAttributes',
          'Class::MOP::Mixin::HasMethods';
 
-Class::MOP::MiniTrait::apply(__PACKAGE__, 'Moose::Meta::Object::Trait');
-
 ## ------------------------------------------------------------------
 ## NOTE:
 ## I normally don't do this, but I am doing
index 7fcd551..ec96f91 100644 (file)
@@ -6,6 +6,7 @@ use Test::Fatal;
 
 use Scalar::Util qw/isweak reftype/;
 
+use Class::MOP;
 use Class::MOP::Instance;
 
 can_ok( "Class::MOP::Instance", $_ ) for qw/
index 7100c80..43825fa 100644 (file)
@@ -4,6 +4,7 @@ use warnings;
 use Test::More;
 use Test::Fatal;
 
+use Class::MOP;
 use Class::MOP::Instance;
 
 my $C = 'Class::MOP::Instance';