Index: tools/clang/plugins/tests/overridden_methods.cpp |
diff --git a/tools/clang/plugins/tests/overridden_methods.cpp b/tools/clang/plugins/tests/overridden_methods.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e5ab0cabdad7076239ad382399ffb97b8626c7d6 |
--- /dev/null |
+++ b/tools/clang/plugins/tests/overridden_methods.cpp |
@@ -0,0 +1,49 @@ |
+// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "overridden_methods.h" |
+ |
+// Fill in the implementations |
+void DerivedClass::SomeMethod() {} |
+void DerivedClass::SomeOtherMethod() {} |
+void DerivedClass::WebKitModifiedSomething() {} |
+ |
+class ImplementationInterimClass : public BaseClass { |
+ public: |
+ // Should warn about pure virtual methods. |
+ virtual void SomeMethod() = 0; |
+}; |
+ |
+class ImplementationDerivedClass : public ImplementationInterimClass, |
+ public webkit_glue::WebKitObserverImpl { |
+ public: |
+ // Should warn about destructors. |
+ virtual ~ImplementationDerivedClass() {} |
+ // Should warn. |
+ virtual void SomeMethod(); |
+ // Should not warn if marked as override. |
+ void SomeOtherMethod() override; |
+ // Should warn for inline implementations in implementation files. |
+ virtual void SomeInlineMethod() {} |
+ // Should warn if overriding a method whose origin is blink. |
+ virtual void WebKitModifiedSomething(); |
+ // Should warn with the insertion point after the const. |
+ virtual void SomeConstMethod() const {} |
+ // Should warn with the insertion point after the throw spec. |
+ virtual void SomeMethodWithExceptionSpec() throw() {} |
+ // Should warn with the insertion point after both the const and the throw |
+ // specifiers. |
+ virtual void SomeConstMethodWithExceptionSpec() const throw(int) {} |
+ // Should warn even if overridden method isn't pure. |
+ virtual void SomeNonPureBaseMethod() {} |
+ // Should warn and place correctly even when there is a comment. |
+ virtual void SomeMethodWithComment(); // This is a comment. |
+ // Should warn and place correctly even if there is a comment and body. |
+ virtual void SomeMethodWithCommentAndBody() {} // This is a comment. |
+}; |
+ |
+int main() { |
+ DerivedClass something; |
+ ImplementationDerivedClass something_else; |
+} |