--- /dev/null
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use Test::More;
+
+BEGIN {
+ eval "use Test::Output;";
+ plan skip_all => "Test::Output is required for this test" if $@;
+ plan tests => 3;
+}
+
+do {
+ package Parent;
+ sub new { bless {}, shift }
+
+ package Child;
+ BEGIN { our @ISA = 'Parent' }
+ use Mouse;
+};
+
+TODO: {
+ local $TODO = "Mouse doesn't track enough context";
+ stderr_is(
+ sub { Child->meta->make_immutable },
+ "Not inlining a constructor for Child since it is not inheriting the default Mouse::Object constructor\n",
+ 'Mouse warns when it would have blown away the inherited constructor',
+ );
+}
+
+do {
+ package Foo;
+ use Mouse;
+
+ __PACKAGE__->meta->make_immutable;
+
+ package Bar;
+ use Mouse;
+ extends 'Foo';
+
+};
+
+stderr_is(
+ sub { Bar->meta->make_immutable },
+ "",
+ 'Mouse does not warn about inlining a constructor when the superclass inlined a constructor',
+);
+
+do {
+ package Baz;
+
+ package Quux;
+ BEGIN { our @ISA = 'Baz' }
+ use Mouse;
+
+ __PACKAGE__->meta->make_immutable;
+};
+
+ok(Quux->new);
+