Mouse::Exporter->setup_import_methods(
as_is => [qw(
- as where message from via
+ as where message optimize_as
+ from via
type subtype coerce class_type role_type enum
find_type_constraint
)],
-
- _export_to_main => 1,
);
my %TYPE;
-sub as ($) {
- return(as => $_[0]);
-}
-sub where (&) {
- return(where => $_[0])
-}
-sub message (&) {
- return(message => $_[0])
-}
+sub as ($) { (as => $_[0]) }
+sub where (&) { (where => $_[0]) }
+sub message (&) { (message => $_[0]) }
+sub optimize_as (&) { (optimize_as => $_[0]) }
sub from { @_ }
sub via (&) { $_[0] }
}
}
if($i - $start){
- push @list, _find_or_create_regular_type(substr $spec, $start, $i - $start);
+ my $type = _find_or_create_regular_type( substr $spec, $start, $i - $start );
+
+ if(defined $type){
+ push @list, $type;
+ }
+ elsif($start != 0) {
+ # RT #50421
+ # create a new class type
+ push @list, class_type( substr $spec, $start, $i - $start );
+ }
}
if(@list == 0){
}
sub find_or_create_does_type_constraint{
- my $type = find_or_parse_type_constraint(@_) || role_type(@_);
-
- if($type->{type} && $type->{type} ne 'Role'){
- Carp::cluck("$type is not a role type");
- }
- return $type;
+ return find_or_parse_type_constraint(@_) || role_type(@_);
}
sub find_or_create_isa_type_constraint {
Mouse::Util::TypeConstraints - Type constraint system for Mouse
+=head1 VERSION
+
+This document describes Mouse version 0.40
+
=head2 SYNOPSIS
use Mouse::Util::TypeConstraints;