1---
2cpp-virtual-final:
3    description: "Virtual function declarations should specify only one of
4                  `virtual`, `final`, or `override`"
5    level: error
6    include: ['.']
7    extensions: ['cc', 'cpp', 'h', 'mm']
8    type: regex
9    #
10    # This lint warns about:
11    #
12    #   virtual void Bad1() final
13    #   void Bad2() final override
14    #   void Bad3() override final
15    #
16    # Caveats: This lint ...
17    #
18    #   * Doesn't warn about `virtual void NotBad() override` at this time
19    #     because there are currently 6963 instances of this pattern.
20    #
21    #   * Doesn't warn about function declarations that span multiple lines
22    #     because the regex can't match across line breaks.
23    #
24    #           virtual    )    final  |  final  override  |  override  final
25    payload: ^ *virtual .+\).+\bfinal\b|\bfinal +override\b|\boverride +final\b
26