use warnings;
use warnings FATAL => 'redefine'; # to avoid to load Mouse::PurePerl twice
+use Scalar::Util ();
use B ();
require Mouse::Util;
-
# taken from Class/MOP.pm
sub is_valid_class_name {
my $class = shift;
package Mouse::Util::TypeConstraints;
-use Scalar::Util ();
sub Any { 1 }
sub Item { 1 }
-sub Bool { $_[0] ? $_[0] eq '1' : 1 }
+sub Bool { !$_[0] || $_[0] eq '1' }
sub Undef { !defined($_[0]) }
sub Defined { defined($_[0]) }
sub Value { defined($_[0]) && !ref($_[0]) }
sub strict_constructor;
*strict_constructor = $generate_class_accessor->('strict_constructor');
+sub _invalidate_metaclass_cache {
+ my($self) = @_;
+ delete $self->{_mouse_cache};
+ return;
+}
+
sub _report_unknown_args {
my($metaclass, $attrs, $args) = @_;
if(defined $tc){ # both isa and does supplied
my $does_ok = do{
local $@;
- eval{ "$tc"->does($args) };
+ eval{ "$tc"->does($args->{does}) };
};
if(!$does_ok){
$class->throw_error("Cannot have both an isa option and a does option because '$tc' does not do '$args->{does}' on attribute ($name)");
=head1 VERSION
-This document describes Mouse version 0.73
+This document describes Mouse version 0.81
=head1 SEE ALSO