|
1 // Copyright (c) 2012 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. |
|
4 |
|
5 #include "overridden_methods.h" |
|
6 |
|
7 // Fill in the implementations |
|
8 void DerivedClass::SomeMethod() {} |
|
9 void DerivedClass::SomeOtherMethod() {} |
|
10 void DerivedClass::WebKitModifiedSomething() {} |
|
11 |
|
12 class ImplementationInterimClass : public BaseClass { |
|
13 public: |
|
14 // Should not warn about pure virtual methods. |
|
15 virtual void SomeMethod() = 0; |
|
16 }; |
|
17 |
|
18 class ImplementationDerivedClass : public ImplementationInterimClass, |
|
19 public webkit_glue::WebKitObserverImpl { |
|
20 public: |
|
21 // Should not warn about destructors. |
|
22 virtual ~ImplementationDerivedClass() {} |
|
23 // Should warn. |
|
24 virtual void SomeMethod(); |
|
25 // Should not warn if marked as override. |
|
26 virtual void SomeOtherMethod() override; |
|
27 // Should not warn for inline implementations in implementation files. |
|
28 virtual void SomeInlineMethod() {} |
|
29 // Should not warn if overriding a method whose origin is WebKit. |
|
30 virtual void WebKitModifiedSomething(); |
|
31 // Should warn if overridden method isn't pure. |
|
32 virtual void SomeNonPureBaseMethod() {} |
|
33 }; |
|
34 |
|
35 int main() { |
|
36 DerivedClass something; |
|
37 ImplementationDerivedClass something_else; |
|
38 } |