--- /dev/null
+use strictures 1;
+use Test::More;
+use Test::Exception;
+
+use Moo::HandleMoose;
+
+{
+ package MooRole;
+ use Moo::Role;
+
+ package MooRoledMooClass;
+ use Moo;
+ with 'MooRole';
+
+ package MooRoledMooseClass;
+ use Moose;
+ with 'MooRole';
+
+ package MooseParent;
+ use Moose;
+
+ has e => (
+ is => 'ro',
+ required => 1,
+ does => 'MooRole',
+ );
+
+ package MooParent;
+ use Moo;
+
+ has e => (
+ is => 'ro',
+ required => 1,
+ does => 'MooRole',
+ );
+}
+
+for my $parent (qw(MooseParent MooParent)) {
+ for my $child (qw(MooRoledMooClass MooRoledMooseClass)) {
+ lives_ok {
+ $parent->new(
+ e => $child->new(),
+ );
+ } "$parent instantiated with a $child delegate that does a MooRole";
+ }
+}
+
+done_testing;