From 4c0e343b27b79f02247d7b3cb5d6c95a7993947f Mon Sep 17 00:00:00 2001 From: Emanuel Graf Date: Mon, 7 Sep 2009 12:10:05 +0000 Subject: [PATCH] FIXED - bug 288736: Source->Implement Method goes into an infinite loop for methods which have a templated parameter with no name https://bugs.eclipse.org/bugs/show_bug.cgi?id=288736 --- .../ui/tests/refactoring/utils/PseudoNameGeneratorTest.java | 4 ++++ .../internal/ui/refactoring/utils/PseudoNameGenerator.java | 3 +++ 2 files changed, 7 insertions(+) diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/utils/PseudoNameGeneratorTest.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/utils/PseudoNameGeneratorTest.java index 6e6a649076a..cc8644dbe5a 100644 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/utils/PseudoNameGeneratorTest.java +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/refactoring/utils/PseudoNameGeneratorTest.java @@ -60,4 +60,8 @@ public class PseudoNameGeneratorTest extends TestCase { public void testWithNamespace() { assertEquals("string", pseudoNameGenerator.generateNewName("std::string")); //$NON-NLS-1$//$NON-NLS-2$ } + + public void testBug288736TemplateParam() { + assertEquals("tempClass", pseudoNameGenerator.generateNewName("tempClass")); + } } diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/utils/PseudoNameGenerator.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/utils/PseudoNameGenerator.java index 6364253c4d7..8e744aa8bca 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/utils/PseudoNameGenerator.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/utils/PseudoNameGenerator.java @@ -32,6 +32,9 @@ public class PseudoNameGenerator { String[] nameParts = typeName.split("::"); //$NON-NLS-1$ typeName = nameParts[nameParts.length - 1]; + if(typeName.contains("<")) { //$NON-NLS-1$ + typeName = typeName.substring(0, typeName.indexOf('<')); + } if(typeName.length() != 0) { typeName = typeName.substring(0, 1).toLowerCase() + typeName.substring(1); }