Annotate every indirect sugar-method
authorPeter Rabbitson <ribasushi@cpan.org>
Fri, 27 May 2016 14:14:28 +0000 (16:14 +0200)
committerPeter Rabbitson <ribasushi@cpan.org>
Tue, 26 Jul 2016 09:11:25 +0000 (11:11 +0200)
commit1b822bd3e15476666e97d9a95754f123410b3c56
treea0f714e6c4050d08ef35b2fa0e60dfa65f0d1626
parent4c90556806f286093d0806e858abdba329e6dfd3
Annotate every indirect sugar-method

Now that the churn is over we can add annotations to each method a user ought
to never override. See next commit for the actual use case and diagnostics
emitter.

Unfortunately this adds yet another small compile-time hit, similar to
73f54e27 (a hit incurred regardless whether the upcoming validation framework
is used or not). Complete test of DBIx::Class::Helpers v2.032002 goes from
about ~64.6 seconds CPU time up to ~65.5, adding another ~1% of startup speed
loss. The savings in debugging sessions should make this all worth it... or
so one hopes.
14 files changed:
lib/DBIx/Class/AccessorGroup.pm
lib/DBIx/Class/MethodAttributes.pm
lib/DBIx/Class/Relationship/Accessor.pm
lib/DBIx/Class/Relationship/Base.pm
lib/DBIx/Class/Relationship/ManyToMany.pm
lib/DBIx/Class/ResultSet.pm
lib/DBIx/Class/ResultSetColumn.pm
lib/DBIx/Class/ResultSource.pm
lib/DBIx/Class/ResultSourceProxy.pm
lib/DBIx/Class/Row.pm
lib/DBIx/Class/Schema.pm
lib/DBIx/Class/Storage.pm
lib/DBIx/Class/_Util.pm
t/lib/DBICTest/BaseSchema.pm