#!perl use strict; use warnings; use Test::More skip_all => 'suspending'; use Test::More; use Mouse::Util::TypeConstraints; { package Foo; use Mouse; has my_class => ( is => 'rw', isa => 'My::New::Class | Str', ); } my $t = Foo->meta->get_attribute('my_class')->type_constraint; eval q{ package My::New::Class; use Mouse; package My::New::DerivedClass; use Mouse; extends 'My::New::Class'; }; isa_ok $t, 'Mouse::Meta::TypeConstraint'; ok $t->check(My::New::Class->new); ok $t->check(My::New::DerivedClass->new); ok $t->check('Foo'); ok!$t->check(undef); ok!$t->check(bless {}, 'Foo'); done_testing;