diff options
Diffstat (limited to 'tools/lint/cpp-virtual-final.yml')
-rw-r--r-- | tools/lint/cpp-virtual-final.yml | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tools/lint/cpp-virtual-final.yml b/tools/lint/cpp-virtual-final.yml new file mode 100644 index 0000000000..20c5837f36 --- /dev/null +++ b/tools/lint/cpp-virtual-final.yml @@ -0,0 +1,25 @@ +--- +cpp-virtual-final: + description: "Virtual function declarations should specify only one of + `virtual`, `final`, or `override`" + level: error + include: ['.'] + extensions: ['cc', 'cpp', 'h', 'mm'] + type: regex + # + # This lint warns about: + # + # virtual void Bad1() final + # void Bad2() final override + # void Bad3() override final + # + # Caveats: This lint ... + # + # * Doesn't warn about `virtual void NotBad() override` at this time + # because there are currently 6963 instances of this pattern. + # + # * Doesn't warn about function declarations that span multiple lines + # because the regex can't match across line breaks. + # + # virtual ) final | final override | override final + payload: ^ *virtual .+\).+\bfinal\b|\bfinal +override\b|\boverride +final\b |