From c309923d714550a131d8fe73d2c8d24f35b2cb27 Mon Sep 17 00:00:00 2001 From: Marco Stornelli Date: Sun, 19 Jan 2020 13:02:13 +0100 Subject: [PATCH] Bug 384793 - Fix implement function refactoring with var args Change-Id: I420a6a8197ff343a5719d8cc3d85eeb9ea889dfa Signed-off-by: Marco Stornelli --- .../ImplementMethodRefactoringTest.java | 13 +++++++++++++ .../implementmethod/ImplementMethodRefactoring.java | 1 + 2 files changed, 14 insertions(+) diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/implementmethod/ImplementMethodRefactoringTest.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/implementmethod/ImplementMethodRefactoringTest.java index f48cb2f736c..4457674db91 100755 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/implementmethod/ImplementMethodRefactoringTest.java +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/implementmethod/ImplementMethodRefactoringTest.java @@ -864,4 +864,17 @@ public class ImplementMethodRefactoringTest extends RefactoringTestBase { expectedFinalInfos = 1; assertRefactoringSuccess(); } + + //A.h + // + ///*$*/int PrintfToStdStr(const char *pszFmt, ...);/*$$*/ + // + + //A.cpp + //==================== + //int PrintfToStdStr(const char *pszFmt, ...) { + //} + public void testFreeFunctionWithVarArgs_Bug384793() throws Exception { + assertRefactoringSuccess(); + } } diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/implementmethod/ImplementMethodRefactoring.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/implementmethod/ImplementMethodRefactoring.java index 5d60ae6252c..844378ec79b 100755 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/implementmethod/ImplementMethodRefactoring.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/implementmethod/ImplementMethodRefactoring.java @@ -326,6 +326,7 @@ public class ImplementMethodRefactoring extends CRefactoring { createdMethodDeclarator = nodeFactory.newFunctionDeclarator(qName); createdMethodDeclarator.setConst(functionDeclarator.isConst()); createdMethodDeclarator.setRefQualifier(functionDeclarator.getRefQualifier()); + createdMethodDeclarator.setVarArgs(functionDeclarator.takesVarArgs()); for (IASTPointerOperator pop : functionDeclarator.getPointerOperators()) { createdMethodDeclarator.addPointerOperator(pop.copy(CopyStyle.withLocations)); }