Change inline_constructor => 0
gfx [Mon, 16 Nov 2009 01:58:54 +0000 (10:58 +0900)]
lib/Mouse.pm
lib/Mouse/Meta/Class.pm
lib/Mouse/PurePerl.pm
t/001_mouse/813-compatibility-get_method_list.t
xs-src/Mouse.xs

index 0765630..a0c88d7 100644 (file)
@@ -141,7 +141,7 @@ sub init_meta {
     });
 
     $meta->superclasses($base_class)
-        unless $meta->superclasses;
+        unless $class->isa($base_class);
 
     # make a class type for each Mouse class
     Mouse::Util::TypeConstraints::class_type($class)
index 8183a96..38d3153 100644 (file)
@@ -11,7 +11,7 @@ our @ISA = qw(Mouse::Meta::Module);
 sub method_metaclass()    { 'Mouse::Meta::Method'    }
 sub attribute_metaclass() { 'Mouse::Meta::Attribute' }
 
-sub constructor_class(); # XS
+sub constructor_class()   { 'Mouse::Meta::Method::Constructor' }
 sub destructor_class()    { 'Mouse::Meta::Method::Destructor'  }
 
 sub _construct_meta {
@@ -191,7 +191,7 @@ sub clone_instance {
 sub make_immutable {
     my $self = shift;
     my %args = (
-        inline_constructor => 1,
+        inline_constructor => 0,
         inline_destructor  => 1,
         constructor_name   => 'new',
         @_,
index e50b57a..ecc61e1 100644 (file)
@@ -203,7 +203,6 @@ sub add_method {
 package
     Mouse::Meta::Class;
 
-sub constructor_class()   { 'Mouse::Meta::Method::Constructor' }
 
 sub is_anon_class{
     return exists $_[0]->{anon_serial_id};
index 4b5b124..1484384 100644 (file)
@@ -15,7 +15,7 @@ use Test::More tests => 6;
     use Mouse;
     sub foo { }
     no Mouse;
-    __PACKAGE__->meta->make_immutable();
+    __PACKAGE__->meta->make_immutable(inline_constructor => 1);
 }
 {
     package MouseRole;
index e518b03..b167206 100644 (file)
@@ -398,8 +398,6 @@ MODULE = Mouse  PACKAGE = Mouse::Meta::Class
 BOOT:
     INSTALL_SIMPLE_READER(Class, roles);
     INSTALL_SIMPLE_PREDICATE_WITH_KEY(Class, is_anon_class, anon_serial_id);
-    newCONSTSUB(gv_stashpvs("Mouse::Meta::Class", TRUE), "constructor_class",
-        newSVpvs("Mouse::Meta::Method::Constructor::XS"));
 
 void
 linearized_isa(SV* self)
@@ -470,16 +468,3 @@ CODE:
 }
 OUTPUT:
     RETVAL
-
-MODULE = Mouse  PACKAGE = Mouse::Meta::Method::Constructor::XS
-
-CV*
-_generate_constructor(...)
-CODE:
-{
-    RETVAL = get_cvs("Mouse::Object::new", TRUE);
-    SvREFCNT_inc_simple_void_NN(RETVAL);
-}
-OUTPUT:
-    RETVAL
-