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 SomeMethod()8void DerivedClass::SomeMethod() {} SomeOtherMethod()9void DerivedClass::SomeOtherMethod() {} WebKitModifiedSomething()10void DerivedClass::WebKitModifiedSomething() {} 11 12 class ImplementationInterimClass : public BaseClass { 13 public: 14 // Should 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 warn about destructors. ~ImplementationDerivedClass()22 virtual ~ImplementationDerivedClass() {} 23 // Should warn. 24 virtual void SomeMethod(); 25 // Should not warn if marked as override. 26 void SomeOtherMethod() override; 27 // Should warn for inline implementations in implementation files. SomeInlineMethod()28 virtual void SomeInlineMethod() {} 29 // Should warn if overriding a method whose origin is blink. 30 virtual void WebKitModifiedSomething(); 31 // Should warn with the insertion point after the const. SomeConstMethod() const32 virtual void SomeConstMethod() const {} 33 // Should warn with the insertion point after the throw spec. SomeMethodWithExceptionSpec()34 virtual void SomeMethodWithExceptionSpec() throw() {} 35 // Should warn with the insertion point after both the const and the throw 36 // specifiers. SomeConstMethodWithExceptionSpec() const37 virtual void SomeConstMethodWithExceptionSpec() const throw(int) {} 38 // Should warn even if overridden method isn't pure. SomeNonPureBaseMethod()39 virtual void SomeNonPureBaseMethod() {} 40 // Should warn and place correctly even when there is a comment. 41 virtual void SomeMethodWithComment(); // This is a comment. 42 // Should warn and place correctly even if there is a comment and body. SomeMethodWithCommentAndBody()43 virtual void SomeMethodWithCommentAndBody() {} // This is a comment. 44 }; 45 main()46int main() { 47 DerivedClass something; 48 ImplementationDerivedClass something_else; 49 } 50