Community
Participate
Working Groups
Build Identifier: M20100909-0800 I know of no workaround for this bug. Reproducible: Always Steps to Reproduce: Steps to reproduce: Call the insertBefore and replace methods of the ASTRewrite class with the <statement>. The insertBefore edit will now be lost. For example: rewriter.insertBefore(statement.getParent(), statement, leadingStatement, editGroup); rewriter.replace(statement, replaceStatement, editGroup); It does not matter in which order the insertBefore and replace methods are called.
Created attachment 186363 [details] [PATCH] Bug 333842 Changed the order insert and replace edits are applied The replace edits are now applied after inserts. In cases where one inserts a node B both before/after a node A, and replaces node A with node C this patch prevents node A from being removed before node B can be inserted, thus preserving that edit.
Created attachment 186617 [details] Test case
Fixed in HEAD and 7.0 > 20110112
*** cdt cvs genie on behalf of egraf *** Bug 333842: The ASTRewriter looses one insertion edits if one both inserts before, and replaces an AST Statement <a href=https://bugs.eclipse.org/bugs/show_bug.cgi?id=333842>https://bugs.eclipse.org/bugs/show_bug.cgi?id=333842</a> [*] ReplaceTestSuite.java 1.3 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/rewrite/changegenerator/replace/ReplaceTestSuite.java?root=Tools_Project&r1=1.2&r2=1.3 [+] ReplaceInsertStatementTest.java http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/rewrite/changegenerator/replace/ReplaceInsertStatementTest.java?root=Tools_Project&revision=1.1&view=markup [*] ASTModificationHelper.java 1.6 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/changegenerator/ASTModificationHelper.java?root=Tools_Project&r1=1.5&r2=1.6 [*] ASTModificationHelper.java 1.4.14.2 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/changegenerator/ASTModificationHelper.java?root=Tools_Project&r1=1.4.14.1&r2=1.4.14.2 [*] ReplaceTestSuite.java 1.2.14.1 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/rewrite/changegenerator/replace/ReplaceTestSuite.java?root=Tools_Project&r1=1.2&r2=1.2.14.1 [+] ReplaceInsertStatementTest.java http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/rewrite/changegenerator/replace/ReplaceInsertStatementTest.java?root=Tools_Project&revision=1.1&view=markup