From 030bdf48c4fa305a9baf2b76919410daee3113cf Mon Sep 17 00:00:00 2001 From: Emanuel Graf Date: Mon, 30 Jun 2008 10:34:06 +0000 Subject: [PATCH] Fix for bug 238554 Implement Method void parameters --- .../resources/refactoring/ImplementMethod.rts | 25 +++++++++++++++++++ .../implementmethod/ParameterHandler.java | 10 +++++--- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/core/org.eclipse.cdt.ui.tests/resources/refactoring/ImplementMethod.rts b/core/org.eclipse.cdt.ui.tests/resources/refactoring/ImplementMethod.rts index 0a355db5c23..f7d0ce4402f 100644 --- a/core/org.eclipse.cdt.ui.tests/resources/refactoring/ImplementMethod.rts +++ b/core/org.eclipse.cdt.ui.tests/resources/refactoring/ImplementMethod.rts @@ -712,3 +712,28 @@ int *TestClass::get(char *val) +//! Bug 238554 void parameters +//#org.eclipse.cdt.ui.tests.refactoring.implementmethod.ImplementMethodRefactoringTest +//@.config +filename=A.h +//@A.h + +class Test +{ + public: + //$void doNothing(void);$// +}; + + +//@A.cpp +#include "A.h" + +//= +#include "A.h" + +void Test::doNothing(void) +{ +} + + + diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/implementmethod/ParameterHandler.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/implementmethod/ParameterHandler.java index d4b4d297883..1a4d3317ca3 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/implementmethod/ParameterHandler.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/implementmethod/ParameterHandler.java @@ -23,6 +23,7 @@ import org.eclipse.text.edits.InsertEdit; import org.eclipse.text.edits.MultiTextEdit; import org.eclipse.cdt.core.dom.ast.IASTParameterDeclaration; +import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclSpecifier; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTFunctionDeclarator; import org.eclipse.cdt.ui.refactoring.CTextFileChange; @@ -50,7 +51,7 @@ public class ParameterHandler { } public void initArgumentNames() { - if(parameterInfos != null) { + if(parameterInfos != null) { return; } needsAditionalArgumentNames = false; @@ -58,7 +59,10 @@ public class ParameterHandler { for(IASTParameterDeclaration actParam : getParametersFromMethodNode()) { String actName = actParam.getDeclarator().getName().toString(); boolean isChangable = false; - if(actName.length() == 0) { + if(actParam.getDeclSpecifier()instanceof IASTSimpleDeclSpecifier && ((IASTSimpleDeclSpecifier)actParam.getDeclSpecifier()).getType() == IASTSimpleDeclSpecifier.t_void) { + actName = ""; //$NON-NLS-1$ + isChangable = false; + }else if(actName.length() == 0) { needsAditionalArgumentNames = true; isChangable = true; actName = findNameForParameter(NameHelper.getTypeName(actParam)); @@ -66,7 +70,7 @@ public class ParameterHandler { parameterInfos.add(new ParameterInfo(actParam, actName, isChangable)); } } - + private String findNameForParameter(String typeName) { if(pseudoNameGenerator == null) { pseudoNameGenerator = new PseudoNameGenerator();