1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-09 10:46:02 +02:00

Fix for bug 238554 Implement Method void parameters

This commit is contained in:
Emanuel Graf 2008-06-30 10:34:06 +00:00
parent 7cf6bfaec0
commit 030bdf48c4
2 changed files with 32 additions and 3 deletions

View file

@ -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)
{
}

View file

@ -23,6 +23,7 @@ import org.eclipse.text.edits.InsertEdit;
import org.eclipse.text.edits.MultiTextEdit; import org.eclipse.text.edits.MultiTextEdit;
import org.eclipse.cdt.core.dom.ast.IASTParameterDeclaration; 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.core.dom.ast.cpp.ICPPASTFunctionDeclarator;
import org.eclipse.cdt.ui.refactoring.CTextFileChange; import org.eclipse.cdt.ui.refactoring.CTextFileChange;
@ -50,7 +51,7 @@ public class ParameterHandler {
} }
public void initArgumentNames() { public void initArgumentNames() {
if(parameterInfos != null) { if(parameterInfos != null) {
return; return;
} }
needsAditionalArgumentNames = false; needsAditionalArgumentNames = false;
@ -58,7 +59,10 @@ public class ParameterHandler {
for(IASTParameterDeclaration actParam : getParametersFromMethodNode()) { for(IASTParameterDeclaration actParam : getParametersFromMethodNode()) {
String actName = actParam.getDeclarator().getName().toString(); String actName = actParam.getDeclarator().getName().toString();
boolean isChangable = false; 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; needsAditionalArgumentNames = true;
isChangable = true; isChangable = true;
actName = findNameForParameter(NameHelper.getTypeName(actParam)); actName = findNameForParameter(NameHelper.getTypeName(actParam));
@ -66,7 +70,7 @@ public class ParameterHandler {
parameterInfos.add(new ParameterInfo(actParam, actName, isChangable)); parameterInfos.add(new ParameterInfo(actParam, actName, isChangable));
} }
} }
private String findNameForParameter(String typeName) { private String findNameForParameter(String typeName) {
if(pseudoNameGenerator == null) { if(pseudoNameGenerator == null) {
pseudoNameGenerator = new PseudoNameGenerator(); pseudoNameGenerator = new PseudoNameGenerator();