6 require q(./test.pl); plan(tests => 1);
10 This example is taken from the inheritance graph of DBIx::Class::Core in DBIx::Class v0.07002:
11 (No ASCII art this time, this graph is insane)
13 The xx:: prefixes are just to be sure these bogus declarations never stomp on real ones
18 package xx::DBIx::Class::Core; use mro 'c3';
20 xx::DBIx::Class::Serialize::Storable
21 xx::DBIx::Class::InflateColumn
22 xx::DBIx::Class::Relationship
23 xx::DBIx::Class::PK::Auto
26 xx::DBIx::Class::ResultSourceProxy::Table
27 xx::DBIx::Class::AccessorGroup
30 package xx::DBIx::Class::InflateColumn; use mro 'c3';
31 our @ISA = qw/ xx::DBIx::Class::Row /;
33 package xx::DBIx::Class::Row; use mro 'c3';
34 our @ISA = qw/ xx::DBIx::Class /;
36 package xx::DBIx::Class; use mro 'c3';
38 xx::DBIx::Class::Componentised
39 xx::Class::Data::Accessor
42 package xx::DBIx::Class::Relationship; use mro 'c3';
44 xx::DBIx::Class::Relationship::Helpers
45 xx::DBIx::Class::Relationship::Accessor
46 xx::DBIx::Class::Relationship::CascadeActions
47 xx::DBIx::Class::Relationship::ProxyMethods
48 xx::DBIx::Class::Relationship::Base
52 package xx::DBIx::Class::Relationship::Helpers; use mro 'c3';
54 xx::DBIx::Class::Relationship::HasMany
55 xx::DBIx::Class::Relationship::HasOne
56 xx::DBIx::Class::Relationship::BelongsTo
57 xx::DBIx::Class::Relationship::ManyToMany
60 package xx::DBIx::Class::Relationship::ProxyMethods; use mro 'c3';
61 our @ISA = qw/ xx::DBIx::Class /;
63 package xx::DBIx::Class::Relationship::Base; use mro 'c3';
64 our @ISA = qw/ xx::DBIx::Class /;
66 package xx::DBIx::Class::PK::Auto; use mro 'c3';
67 our @ISA = qw/ xx::DBIx::Class /;
69 package xx::DBIx::Class::PK; use mro 'c3';
70 our @ISA = qw/ xx::DBIx::Class::Row /;
72 package xx::DBIx::Class::ResultSourceProxy::Table; use mro 'c3';
74 xx::DBIx::Class::AccessorGroup
75 xx::DBIx::Class::ResultSourceProxy
78 package xx::DBIx::Class::ResultSourceProxy; use mro 'c3';
79 our @ISA = qw/ xx::DBIx::Class /;
81 package xx::Class::Data::Accessor; our @ISA = (); use mro 'c3';
82 package xx::DBIx::Class::Relationship::HasMany; our @ISA = (); use mro 'c3';
83 package xx::DBIx::Class::Relationship::HasOne; our @ISA = (); use mro 'c3';
84 package xx::DBIx::Class::Relationship::BelongsTo; our @ISA = (); use mro 'c3';
85 package xx::DBIx::Class::Relationship::ManyToMany; our @ISA = (); use mro 'c3';
86 package xx::DBIx::Class::Componentised; our @ISA = (); use mro 'c3';
87 package xx::DBIx::Class::AccessorGroup; our @ISA = (); use mro 'c3';
88 package xx::DBIx::Class::Serialize::Storable; our @ISA = (); use mro 'c3';
89 package xx::DBIx::Class::Relationship::Accessor; our @ISA = (); use mro 'c3';
90 package xx::DBIx::Class::Relationship::CascadeActions; our @ISA = (); use mro 'c3';
94 mro::get_linear_isa('xx::DBIx::Class::Core'),
97 xx::DBIx::Class::Serialize::Storable
98 xx::DBIx::Class::InflateColumn
99 xx::DBIx::Class::Relationship
100 xx::DBIx::Class::Relationship::Helpers
101 xx::DBIx::Class::Relationship::HasMany
102 xx::DBIx::Class::Relationship::HasOne
103 xx::DBIx::Class::Relationship::BelongsTo
104 xx::DBIx::Class::Relationship::ManyToMany
105 xx::DBIx::Class::Relationship::Accessor
106 xx::DBIx::Class::Relationship::CascadeActions
107 xx::DBIx::Class::Relationship::ProxyMethods
108 xx::DBIx::Class::Relationship::Base
109 xx::DBIx::Class::PK::Auto
112 xx::DBIx::Class::ResultSourceProxy::Table
113 xx::DBIx::Class::AccessorGroup
114 xx::DBIx::Class::ResultSourceProxy
116 xx::DBIx::Class::Componentised
117 xx::Class::Data::Accessor
119 ), '... got the right C3 merge order for xx::DBIx::Class::Core');