DescriptionConvert the no-inline-virtuals rule into a constructors rule.
Inline virtual functions are now allowed, but if a class has too many of
them, it needs an out-of-line constructor.
This was discussed in
https://groups.google.com/a/chromium.org/d/topic/chromium-dev/rdF1mT3V_PM/discussion.
This change currently includes base classes in counting inline virtuals, but that'll make it easier to break derived classes by changing their bases. If folks are annoyed, we could revert that part (change getFinalOverriders into methods()), at the cost of reducing the accuracy of the check.
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
BUG=565523
Patch Set 1 #Patch Set 2 : Add a flag, and make this patch just the plugin change. #Patch Set 3 : Count longer inline virtuals as costing more object size. #Patch Set 4 : Skip deleted constructors. #Patch Set 5 : Fix a bug where long inheritance chains counted as expensive inline virtuals. #Patch Set 6 : Rebase onto https://codereview.chromium.org/1504033010 #
Total comments: 5
Depends on Patchset: Dependent Patchsets: Messages
Total messages: 14 (9 generated)
|