our $VERSION = '0.12';
our $AUTHORITY = 'cpan:STEVAN';
+# Prototyped subs must be predeclared because we have a circular dependency
+# with Moose::Meta::Attribute et. al. so in case of us being use'd first the
+# predeclaration ensures the prototypes are in scope when consumers are
+# compiled
+
+sub find_type_constraint ($);
+sub _create_type_constraint ($$$;$$);
+sub _install_type_coercions ($$);
+sub create_type_constraint_union (@);
+sub type ($$;$$);
+sub subtype ($$;$$$);
+sub coerce ($@);
+sub as ($);
+sub from ($);
+sub where (&);
+sub via (&);
+sub message (&);
+sub optimize_as (&);
+sub enum ($;@);
+
use Moose::Meta::TypeConstraint;
use Moose::Meta::TypeCoercion;
use strict;
use warnings;
-use Test::More tests => 37;
+use Test::More tests => 38;
use Test::Exception;
use Scalar::Util ();
is($string->validate(5),
"This is not a string (5)",
'... validated unsuccessfully (got error)');
+
+lives_ok { Moose::Meta::Attribute->new('bob', isa => 'Spong') }
+ 'meta-attr construction ok even when type constraint utils loaded first';