| Summary: | Infinite loop in Implement Method command | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Tools] CDT | Reporter: | Sergey Prigogin <eclipse.sprigogin> | ||||
| Component: | cdt-refactoring | Assignee: | Sergey Prigogin <eclipse.sprigogin> | ||||
| Status: | RESOLVED FIXED | QA Contact: | Emanuel Graf <emanuel> | ||||
| Severity: | major | ||||||
| Priority: | P3 | CC: | me, yevshif | ||||
| Version: | 6.0.2 | ||||||
| Target Milestone: | 7.0 | ||||||
| Hardware: | All | ||||||
| OS: | All | ||||||
| Whiteboard: | |||||||
| Attachments: |
|
||||||
Created attachment 170486 [details]
Fix
Fixed in HEAD > 20100530. *** cdt cvs genie on behalf of sprigogin *** Infinite loop in Implement Method command. Bug 312172. [*] PseudoNameGenerator.java 1.6 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/utils/PseudoNameGenerator.java?root=Tools_Project&r1=1.5&r2=1.6 [*] NameHelper.java 1.7 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/utils/NameHelper.java?root=Tools_Project&r1=1.6&r2=1.7 |
To reproduce: 1. Create a file with the following content: #define COPY_CTOR(T) T(const T&) class A { public: A(); void m(); private: COPY_CTOR(A); }; 2. Select method "m" and click on Implement Method. Eclipse gets into an infinite loop in PseudoNameGenerator.generateNewName: PseudoNameGenerator.generateNewName(String) line: 62 ParameterHandler.findNameForParameter(String) line: 77 ParameterHandler.initArgumentNames() line: 61 ParameterHandler.<init>(IASTSimpleDeclaration) line: 39 ImplementMethodData.setMethodDeclarations(List<IASTSimpleDeclaration>) line: 38 ImplementMethodRefactoring.checkInitialConditions(IProgressMonitor) line: 83 CheckConditionsOperation.run(IProgressMonitor) line: 83 Workspace.run(IWorkspaceRunnable, ISchedulingRule, int, IProgressMonitor) line: 1975 WorkbenchRunnableAdapter.run(IProgressMonitor) line: 87 ModalContext$ModalContextThread.run() line: 121