sub list_all_type_constraints { keys %TYPE }
}
+# is-a predicates
+BEGIN{
+ _generate_class_type_for('Mouse::Meta::TypeConstraint' => '_is_a_type_constraint');
+ _generate_class_type_for('Mouse::Meta::Class' => '_is_a_metaclass');
+ _generate_class_type_for('Mouse::Meta::Role' => '_is_a_metarole');
+}
+
+
sub _create_type{
my $mode = shift;
return;
}
- if($meta->isa('Mouse::Meta::Role')){
+ if(_is_a_metarole($meta)){
return role_type($spec);
}
else{
sub find_type_constraint {
my($spec) = @_;
- return $spec if blessed($spec) && $spec->isa('Mouse::Meta::TypeConstraint');
+ return $spec if _is_a_type_constraint($spec);
$spec =~ s/\s+//g;
return $TYPE{$spec};
sub find_or_parse_type_constraint {
my($spec) = @_;
- return $spec if blessed($spec) && $spec->isa('Mouse::Meta::TypeConstraint');
+ return $spec if _is_a_type_constraint($spec);
$spec =~ s/\s+//g;
return $TYPE{$spec} || do{