# Because Mouse::Util is loaded first in all the Mouse sub-modules,
# XS loader is placed here, not in Mouse.pm.
- our $VERSION = '0.43';
+ our $VERSION = '0.45';
my $xs = !(exists $INC{'Mouse/PurePerl.pm'} || $ENV{MOUSE_PUREPERL});
Mouse::Util->import({ into => 'Mouse::Meta::Method::Destructor::XS' }, ':meta');
Mouse::Util->import({ into => 'Mouse::Meta::Method::Accessor::XS' }, ':meta');
return 1;
- };
+ } || 0;
#warn $@ if $@;
}
*get_all_metaclass_names = \&Mouse::Meta::Module::_get_all_metaclass_names;
# is-a predicates
- generate_isa_predicate_for('Mouse::Meta::TypeConstraint' => 'is_a_type_constraint');
- generate_isa_predicate_for('Mouse::Meta::Class' => 'is_a_metaclass');
- generate_isa_predicate_for('Mouse::Meta::Role' => 'is_a_metarole');
+ #generate_isa_predicate_for('Mouse::Meta::TypeConstraint' => 'is_a_type_constraint');
+ #generate_isa_predicate_for('Mouse::Meta::Class' => 'is_a_metaclass');
+ #generate_isa_predicate_for('Mouse::Meta::Role' => 'is_a_metarole');
+
+ # duck type predicates
+ generate_can_predicate_for(['_compiled_type_constraint'] => 'is_a_type_constraint');
+ generate_can_predicate_for(['create_anon_class'] => 'is_a_metaclass');
+ generate_can_predicate_for(['create_anon_role'] => 'is_a_metarole');
}
our $in_global_destruction = 0;
};
# ^^^^^ CODE TAKEN FROM MRO::COMPAT ^^^^^
- eval{ require Class::C3 };
-
# MRO::Compat::__get_linear_isa has no prototype, so
# we define a prototyped version for compatibility with core's
# See also MRO::Compat::__get_linear_isa.
our %MRO;
$type = exists $MRO{$classname} ? 'c3' : 'dfs';
}
- return $type eq 'c3'
- ? [calculateMRO($classname)]
- : $_get_linear_isa_dfs->($classname);\r
+ if($type eq 'c3'){
+ require Class::C3;
+ return [ calculateMRO($classname) ];
+ }
+ elsif($type eq 'dfs'){
+ return $_get_linear_isa_dfs->($classname);
+ }
+ else{
+ Carp::croak("Unknown mro type '$type'");
+ }
};
}
=head1 VERSION
-This document describes Mouse version 0.43
+This document describes Mouse version 0.45
=head1 IMPLEMENTATIONS FOR