package MooseX::Types::UndefinedType;
-our $VERSION = "0.20";
-
-=head1 NAME
-
-MooseX::Types::UndefinedType - Represents a not yet defined type
-
-=cut
use warnings;
use strict;
=head1 DESCRIPTION
-Whenever a type handle function (e.g. C<Int()> can't find a type
+Whenever a type handle function (e.g. C<Int()> can't find a type
constraint under it's full name, it assumes it has not yet been defined.
-It will then return an instance of this class, handling only
+It will then return an instance of this class, handling only
stringification, name and possible identification of undefined types.
Later, when you try to use the Undefined Type Constraint, autovivification will
}
}
+=head2 can_be_inlined
+
+Make sure that if a type hasn't been defined yet when Moose wants to inline it,
+we don't allow inlining.
+
+=cut
+
+sub can_be_inlined {
+ my $self = shift;
+ if(my $type_constraint = $self->__autovivify) {
+ return $type_constraint->can_be_inlined;
+ } else {
+ return;
+ }
+}
+
=head2 AUTOLOAD
Try to autovivify and delegate
sub AUTOLOAD {
my ($self, @args) = @_;
- my ($method) = our $AUTOLOAD =~ /([^:]+)$/;
+ my ($method) = our $AUTOLOAD =~ /([^:]+)$/;
if(my $type_constraint = $self->__autovivify) {
return $type_constraint->$method(@args);
=head1 SEE ALSO
L<MooseX::Types::Moose>,
-L<Moose::Util::TypeConstraints>,
+L<Moose::Util::TypeConstraints>,
L<Moose::Meta::TypeConstraint>,
L<Carp::Clan>
-=head1 AUTHOR
-
-See L<MooseX::Types/AUTHOR>.
-
=head1 LICENSE
This program is free software; you can redistribute it and/or modify