Compile the following code: struct foo { virtual void f(); }; struct bar final : foo { void f() final override; }; It is correct and should compile but the function bar::f is annotated with 'final' even though the entire class is also annotated with 'final'. This adds nothing and might be an indication of misunderstanding or leftovers from previous versions of the code. Perhaps a warning can be added to point out the issue.
Confirmed.