use Scalar::Util 'blessed', 'weaken', 'looks_like_number', 'refaddr';
-our $VERSION = '0.88';
+our $VERSION = '0.93';
our $AUTHORITY = 'cpan:STEVAN';
use base 'Moose::Meta::Method',
return $self;
}
-# This is here so can_be_inlined can be inherited by MooseX modules.
-sub _expected_constructor_class {
- return 'Moose::Object';
-}
-
## method
sub _initialize_body {
# requires some adaption on the part of
# the author, after all, nothing is free)
my $source = 'sub {';
- $source .= "\n" . 'my $class = shift;';
+ $source .= "\n" . 'my $_instance = shift;';
+
+ $source .= "\n" . 'my $class = Scalar::Util::blessed($_instance) || $_instance;';
$source .= "\n" . 'return $class->Moose::Object::new(@_)';
$source .= "\n if \$class ne '" . $self->associated_metaclass->name