Commit | Line | Data |
---|---|---|
204e6232 BF |
1 | #!./perl |
2 | ||
3 | use strict; | |
4 | use warnings; | |
5 | use utf8; | |
6 | use open qw( :utf8 :std ); | |
7 | ||
8 | require q(./test.pl); plan(tests => 1); | |
9 | ||
10 | =pod | |
11 | ||
12 | This example is taken from the inheritance graph of DBIx::Class::Core in DBIx::Class v0.07002: | |
13 | (No ASCII art this time, this graph is insane) | |
14 | ||
15 | The xx:: prefixes are just to be sure these bogus declarations never stomp on real ones | |
16 | ||
17 | =cut | |
18 | ||
19 | { | |
20 | package Ẋẋ::ḐʙIX::Cl았::Coレ; use mro 'c3'; | |
21 | our @ISA = qw/ | |
22 | Ẋẋ::ḐʙIX::Cl았::ᓭᚱi알ḭźɜ::Sᑐ랍lえ | |
23 | Ẋẋ::ḐʙIX::Cl았::Ĭⁿᰒ텣올움ᶮ | |
24 | Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ | |
25 | Ẋẋ::ḐʙIX::Cl았::ᛕķ::Ạuต | |
26 | Ẋẋ::ḐʙIX::Cl았::ᛕķ | |
27 | Ẋẋ::ḐʙIX::Cl았::ロẈ | |
28 | Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy::탑lẹ | |
29 | Ẋẋ::ḐʙIX::Cl았::ᚪc엤ȭઋᶢऋouꩇ | |
30 | /; | |
31 | ||
32 | package Ẋẋ::ḐʙIX::Cl았::Ĭⁿᰒ텣올움ᶮ; use mro 'c3'; | |
33 | our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았::ロẈ /; | |
34 | ||
35 | package Ẋẋ::ḐʙIX::Cl았::ロẈ; use mro 'c3'; | |
36 | our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았 /; | |
37 | ||
38 | package Ẋẋ::ḐʙIX::Cl았; use mro 'c3'; | |
39 | our @ISA = qw/ | |
40 | Ẋẋ::ḐʙIX::Cl았::촘폰en팃엗 | |
41 | xx::Cl았::닽Ӕ::앛쳇sᚖ | |
42 | /; | |
43 | ||
44 | package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ; use mro 'c3'; | |
45 | our @ISA = qw/ | |
46 | Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::헬pḜrS | |
47 | Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::앛쳇sᚖ | |
48 | Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::찻찯eᚪtЁnʂ | |
49 | Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::Pr오xᐇMeᖪ옫ś | |
50 | Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::밧え | |
51 | Ẋẋ::ḐʙIX::Cl았 | |
52 | /; | |
53 | ||
54 | package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::헬pḜrS; use mro 'c3'; | |
55 | our @ISA = qw/ | |
56 | Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᛗƳ | |
57 | Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᶱn | |
58 | Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::бl옹sTȭ | |
59 | Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::ᛗᓆ톰ẰᚿẎ | |
60 | /; | |
61 | ||
62 | package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::Pr오xᐇMeᖪ옫ś; use mro 'c3'; | |
63 | our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았 /; | |
64 | ||
65 | package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::밧え; use mro 'c3'; | |
66 | our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았 /; | |
67 | ||
68 | package Ẋẋ::ḐʙIX::Cl았::ᛕķ::Ạuต; use mro 'c3'; | |
69 | our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았 /; | |
70 | ||
71 | package Ẋẋ::ḐʙIX::Cl았::ᛕķ; use mro 'c3'; | |
72 | our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았::ロẈ /; | |
73 | ||
74 | package Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy::탑lẹ; use mro 'c3'; | |
75 | our @ISA = qw/ | |
76 | Ẋẋ::ḐʙIX::Cl았::ᚪc엤ȭઋᶢऋouꩇ | |
77 | Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy | |
78 | /; | |
79 | ||
80 | package Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy; use mro 'c3'; | |
81 | our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았 /; | |
82 | ||
83 | package xx::Cl았::닽Ӕ::앛쳇sᚖ; our @ISA = (); use mro 'c3'; | |
84 | package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᛗƳ; our @ISA = (); use mro 'c3'; | |
85 | package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᶱn; our @ISA = (); use mro 'c3'; | |
86 | package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::бl옹sTȭ; our @ISA = (); use mro 'c3'; | |
87 | package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::ᛗᓆ톰ẰᚿẎ; our @ISA = (); use mro 'c3'; | |
88 | package Ẋẋ::ḐʙIX::Cl았::촘폰en팃엗; our @ISA = (); use mro 'c3'; | |
89 | package Ẋẋ::ḐʙIX::Cl았::ᚪc엤ȭઋᶢऋouꩇ; our @ISA = (); use mro 'c3'; | |
90 | package Ẋẋ::ḐʙIX::Cl았::ᓭᚱi알ḭźɜ::Sᑐ랍lえ; our @ISA = (); use mro 'c3'; | |
91 | package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::앛쳇sᚖ; our @ISA = (); use mro 'c3'; | |
92 | package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::찻찯eᚪtЁnʂ; our @ISA = (); use mro 'c3'; | |
93 | } | |
94 | ||
95 | ok(eq_array( | |
96 | mro::get_linear_isa('Ẋẋ::ḐʙIX::Cl았::Coレ'), | |
97 | [qw/ | |
98 | Ẋẋ::ḐʙIX::Cl았::Coレ | |
99 | Ẋẋ::ḐʙIX::Cl았::ᓭᚱi알ḭźɜ::Sᑐ랍lえ | |
100 | Ẋẋ::ḐʙIX::Cl았::Ĭⁿᰒ텣올움ᶮ | |
101 | Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ | |
102 | Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::헬pḜrS | |
103 | Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᛗƳ | |
104 | Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᶱn | |
105 | Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::бl옹sTȭ | |
106 | Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::ᛗᓆ톰ẰᚿẎ | |
107 | Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::앛쳇sᚖ | |
108 | Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::찻찯eᚪtЁnʂ | |
109 | Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::Pr오xᐇMeᖪ옫ś | |
110 | Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::밧え | |
111 | Ẋẋ::ḐʙIX::Cl았::ᛕķ::Ạuต | |
112 | Ẋẋ::ḐʙIX::Cl았::ᛕķ | |
113 | Ẋẋ::ḐʙIX::Cl았::ロẈ | |
114 | Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy::탑lẹ | |
115 | Ẋẋ::ḐʙIX::Cl았::ᚪc엤ȭઋᶢऋouꩇ | |
116 | Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy | |
117 | Ẋẋ::ḐʙIX::Cl았 | |
118 | Ẋẋ::ḐʙIX::Cl았::촘폰en팃엗 | |
119 | xx::Cl았::닽Ӕ::앛쳇sᚖ | |
120 | /] | |
121 | ), '... got the right C3 merge order for Ẋẋ::ḐʙIX::Cl았::Core'); |