media/webrtc/trunk/tools/clang/plugins/tests/virtual_methods.h

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
     2 // Use of this source code is governed by a BSD-style license that can be
     3 // found in the LICENSE file.
     5 #ifndef VIRTUAL_METHODS_H_
     6 #define VIRTUAL_METHODS_H_
     8 // Should warn about virtual method usage.
     9 class VirtualMethodsInHeaders {
    10  public:
    11   // Don't complain about these.
    12   virtual void MethodIsAbstract() = 0;
    13   virtual void MethodHasNoArguments();
    14   virtual void MethodHasEmptyDefaultImpl() {}
    16   // But complain about this:
    17   virtual bool ComplainAboutThis() { return true; }
    18 };
    20 // Complain on missing 'virtual' keyword in overrides.
    21 class WarnOnMissingVirtual : public VirtualMethodsInHeaders {
    22  public:
    23   void MethodHasNoArguments() override;
    24 };
    26 // Don't complain about things in a 'testing' namespace.
    27 namespace testing {
    28 struct TestStruct {};
    29 }  // namespace testing
    31 class VirtualMethodsInHeadersTesting : public VirtualMethodsInHeaders {
    32  public:
    33   // Don't complain about no virtual testing methods.
    34   void MethodHasNoArguments();
    35  private:
    36   testing::TestStruct tester_;
    37 };
    39 #endif  // VIRTUAL_METHODS_H_

mercurial