This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
mg.c: Remove poorly considered assertion
[perl5.git] / t / mro / basic_05_dfs_utf8.t
CommitLineData
204e6232
BF
1#!./perl
2
3use strict;
4use warnings;
5
6use utf8;
7use open qw( :utf8 :std );
8
9require q(./test.pl); plan(tests => 2);
10
11=pod
12
13This tests a strange bug found by Matt S. Trout
14while building DBIx::Class. Thanks Matt!!!!
15
16 <A>
17 / \
18<C> <B>
19 \ /
20 <D>
21
22=cut
23
24{
25 package Diᚪၚd_A;
26 use mro 'dfs';
27
28 sub ᕘ { 'Diᚪၚd_A::ᕘ' }
29}
30{
31 package Diᚪၚd_B;
32 use base 'Diᚪၚd_A';
33 use mro 'dfs';
34
35 sub ᕘ { 'Diᚪၚd_B::ᕘ => ' . (shift)->SUPER::ᕘ }
36}
37{
38 package Diᚪၚd_C;
39 use mro 'dfs';
40 use base 'Diᚪၚd_A';
41
42}
43{
44 package Diᚪၚd_D;
45 use base ('Diᚪၚd_C', 'Diᚪၚd_B');
46 use mro 'dfs';
47
48 sub ᕘ { 'Diᚪၚd_D::ᕘ => ' . (shift)->SUPER::ᕘ }
49}
50
51ok(eq_array(
52 mro::get_linear_isa('Diᚪၚd_D'),
53 [ qw(Diᚪၚd_D Diᚪၚd_C Diᚪၚd_A Diᚪၚd_B) ]
54), '... got the right MRO for Diᚪၚd_D');
55
56is(Diᚪၚd_D->ᕘ,
57 'Diᚪၚd_D::ᕘ => Diᚪၚd_A::ᕘ',
58 '... got the right next::method dispatch path');