From f1e2d9549df026441613bd7c26511c3e17195b88 Mon Sep 17 00:00:00 2001 From: Marco Stornelli Date: Tue, 11 Jun 2019 17:45:20 +0200 Subject: [PATCH] Bug 548138 - Fix override method with implementation Change-Id: Icbea4fe97e8f3b481ea187f905661c8adcc7cc06 Signed-off-by: Marco Stornelli --- .../OverrideMethodsRefactoringTest.java | 32 +++++++++++++++++++ .../refactoring/overridemethods/Method.java | 3 -- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/overridemethods/OverrideMethodsRefactoringTest.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/overridemethods/OverrideMethodsRefactoringTest.java index 7002675e29b..9147c8b2a52 100755 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/overridemethods/OverrideMethodsRefactoringTest.java +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/overridemethods/OverrideMethodsRefactoringTest.java @@ -640,4 +640,36 @@ public class OverrideMethodsRefactoringTest extends RefactoringTestBase { selectedMethods = new String[] { "baseFunc(void *)const" }; assertRefactoringSuccess(); } + + //A.h + //class Base { + //public: + // virtual ~Base(); + // virtual void baseFunc() const { + // } + //}; + //class X: public Base { + //public: + // X(); + // /*$*//*$$*/ + //}; + //==================== + //class Base { + //public: + // virtual ~Base(); + // virtual void baseFunc() const { + // } + //}; + //class X: public Base { + //public: + // X(); + // virtual void baseFunc() const; + //}; + // + //inline void X::baseFunc() const { + //} + public void testWithHeaderOnlyImpl_Bug548138() throws Exception { + selectedMethods = new String[] { "baseFunc()const" }; + assertRefactoringSuccess(); + } } diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/overridemethods/Method.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/overridemethods/Method.java index 7da8987a12e..9a92f39f46e 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/overridemethods/Method.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/overridemethods/Method.java @@ -137,9 +137,6 @@ public class Method { return null; IASTDeclarator declarator = (IASTDeclarator) declaration.getParent(); - IASTNode parent = declarator.getParent(); - if (!(parent instanceof IASTSimpleDeclaration)) - return null; /** * We can't just copy the original nodes here but we need to create a new node. We can't do it