The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;
use Test::More tests => 3;

use Class::C3::Adopt::NEXT;

{
    package X;

    package Y;

    package XY;
    our @ISA = qw/X Y/;

    package YX;
    our @ISA = qw/Y X/;

    package Z;
    our @ISA = qw/XY YX/;

    sub foo { shift->NEXT::foo(@_) }
}

my @warnings;
$SIG{__WARN__} = sub { push @warnings, @_ };

is(scalar @warnings, 0, 'no warnings yet');

Z->foo;
Z->foo;

is(scalar @warnings, 1, 'got a warning',);
like($warnings[0], qr/inconsistent hierarchy .* merg(?:e|ing)/i, 'inconsistent c3 hierarchy');