Fix describe_class_methods on non-mergeable DFS mro
authorPeter Rabbitson <ribasushi@cpan.org>
Tue, 14 Jun 2016 16:05:51 +0000 (18:05 +0200)
committerPeter Rabbitson <ribasushi@cpan.org>
Tue, 14 Jun 2016 16:05:51 +0000 (18:05 +0200)
commit085dbdd69f2b8c80e32698fc6b7e918addaf7fc9
treefd8b8a29433b3b2bda53859bb23a49fa455ed45e
parent5e67be2621ad5b3c2d5d6927b85d344ed436cd2b
Fix describe_class_methods on non-mergeable DFS mro

Instead of trying to deduplicate - simply track which methods are locally
defined, and use that info combined with a reverse ISA-per-select-MRO to
build the final stack.

As a result the code is even more efficient and can now deal with real-life
insane hierarchies like:

https://metacpan.org/source/MJFLICK/DBIx-Class-Bootstrap-Simple-0.03/lib/DBIx/Class/Bootstrap/Simple.pm#L93
lib/DBIx/Class/_Util.pm
xt/extra/internals/attributes.t