diff --git a/java.source/test/unit/src/org/netbeans/api/java/source/gen/MultipleRewritesTest.java b/java.source/test/unit/src/org/netbeans/api/java/source/gen/MultipleRewritesTest.java --- a/java.source/test/unit/src/org/netbeans/api/java/source/gen/MultipleRewritesTest.java +++ b/java.source/test/unit/src/org/netbeans/api/java/source/gen/MultipleRewritesTest.java @@ -42,6 +42,7 @@ import com.sun.source.tree.ClassTree; import com.sun.source.tree.ExpressionTree; +import com.sun.source.tree.IdentifierTree; import com.sun.source.tree.MethodTree; import com.sun.source.tree.ModifiersTree; import com.sun.source.tree.TypeParameterTree; @@ -119,6 +120,41 @@ assertEquals(golden, res); } + public void testRewriteRewrittenTree2() throws Exception { + testFile = new File(getWorkDir(), "Test.java"); + TestUtilities.copyStringToFile(testFile, + "package hierbas.del.litoral;\n\n" + + "public class Test {\n" + + " String a;\n" + + "}\n" + ); + String golden = + "package hierbas.del.litoral;\n\n" + + "public class Test {\n" + + " Object a;\n" + + "}\n"; + JavaSource testSource = JavaSource.forFileObject(FileUtil.toFileObject(testFile)); + Task task = new Task() { + + public void run(WorkingCopy workingCopy) throws java.io.IOException { + workingCopy.toPhase(Phase.RESOLVED); + TreeMaker make = workingCopy.getTreeMaker(); + + ClassTree clazz = (ClassTree) workingCopy.getCompilationUnit().getTypeDecls().get(0); + VariableTree var = (VariableTree) clazz.getMembers().get(1); + IdentifierTree i = make.Identifier("Test"); + + workingCopy.rewrite(var.getType(), i); + workingCopy.rewrite(i, make.Identifier("Object")); + } + + }; + testSource.runModificationTask(task).commit(); + String res = TestUtilities.copyFileToString(testFile); + System.err.println(res); + assertEquals(golden, res); + } + String getGoldenPckg() { return ""; }