|
Lines 2190-2193
Link Here
|
| 2190 |
assertEqualString(preview, buf.toString()); |
2190 |
assertEqualString(preview, buf.toString()); |
| 2191 |
} |
2191 |
} |
|
|
2192 |
public void testBug404343() throws Exception { |
| 2193 |
IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null); |
| 2194 |
StringBuffer buf= new StringBuffer(); |
| 2195 |
buf.append("package test1;\n"); |
| 2196 |
buf.append("public class E {\n"); |
| 2197 |
buf.append(" public void foo() {\n"); |
| 2198 |
buf.append(" int a = 0;\n"); |
| 2199 |
buf.append(" String x = \"\";\n"); |
| 2200 |
buf.append(" x = a + \"Processing \"+\" of \" + \"...\";\n"); |
| 2201 |
buf.append(" x = a + \"Processing \";\n"); |
| 2202 |
buf.append(" }\n"); |
| 2203 |
buf.append("}\n"); |
| 2204 |
ICompilationUnit cu= pack1.createCompilationUnit("E.java", buf.toString(), false, null); |
| 2192 |
|
2205 |
|
|
|
2206 |
CompilationUnit astRoot= createAST(cu); |
| 2207 |
ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST()); |
| 2208 |
|
| 2209 |
AST ast= astRoot.getAST(); |
| 2210 |
|
| 2211 |
assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0); |
| 2212 |
TypeDeclaration type= findTypeDeclaration(astRoot, "E"); |
| 2213 |
MethodDeclaration methodDecl= findMethodDeclaration(type, "foo"); |
| 2214 |
Block block= methodDecl.getBody(); |
| 2215 |
List statements= block.statements(); |
| 2216 |
assertTrue("Number of statements not 4", statements.size() == 4); |
| 2217 |
{ // modify operand and operation |
| 2218 |
ExpressionStatement stmt= (ExpressionStatement) statements.get(2); |
| 2219 |
Assignment assignment= (Assignment) stmt.getExpression(); |
| 2220 |
InfixExpression infix = (InfixExpression) assignment.getRightHandSide(); |
| 2221 |
|
| 2222 |
ListRewrite listRewrite = rewrite.getListRewrite(infix, InfixExpression.EXTENDED_OPERANDS_PROPERTY); |
| 2223 |
PrefixExpression prefix = ast.newPrefixExpression(); |
| 2224 |
prefix.setOperand(ast.newSimpleName("c")); |
| 2225 |
prefix.setOperator(PrefixExpression.Operator.INCREMENT); |
| 2226 |
listRewrite.insertFirst(prefix, null); |
| 2227 |
|
| 2228 |
stmt= (ExpressionStatement) statements.get(3); |
| 2229 |
assignment= (Assignment) stmt.getExpression(); |
| 2230 |
infix = (InfixExpression) assignment.getRightHandSide(); |
| 2231 |
listRewrite = rewrite.getListRewrite(infix, InfixExpression.EXTENDED_OPERANDS_PROPERTY); |
| 2232 |
prefix = ast.newPrefixExpression(); |
| 2233 |
prefix.setOperand(ast.newSimpleName("c")); |
| 2234 |
prefix.setOperator(PrefixExpression.Operator.INCREMENT); |
| 2235 |
listRewrite.insertFirst(prefix, null); |
| 2236 |
} |
| 2237 |
|
| 2238 |
String preview= evaluateRewrite(cu, rewrite); |
| 2239 |
|
| 2240 |
buf= new StringBuffer(); |
| 2241 |
buf.append("package test1;\n"); |
| 2242 |
buf.append("public class E {\n"); |
| 2243 |
buf.append(" public void foo() {\n"); |
| 2244 |
buf.append(" int a = 0;\n"); |
| 2245 |
buf.append(" String x = \"\";\n"); |
| 2246 |
buf.append(" x = a + \"Processing \"+ ++c + \" of \" + \"...\";\n"); |
| 2247 |
buf.append(" x = a + \"Processing \" + ++c;\n"); |
| 2248 |
buf.append(" }\n"); |
| 2249 |
buf.append("}\n"); |
| 2250 |
assertEqualString(preview, buf.toString()); |
| 2251 |
} |
| 2193 |
} |
2252 |
} |