Bug 571399 - [16] 2 tests failing in the Y- build
Change-Id: I4bf6580bdb90d17a0beb9a086a80288295982b97
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingInstanceOfPatternExpressionTest.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingInstanceOfPatternExpressionTest.java
index 5130a30..2d9729c 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingInstanceOfPatternExpressionTest.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingInstanceOfPatternExpressionTest.java
@@ -29,6 +29,7 @@
import org.eclipse.jdt.core.dom.IfStatement;
import org.eclipse.jdt.core.dom.MethodDeclaration;
import org.eclipse.jdt.core.dom.PatternInstanceofExpression;
+import org.eclipse.jdt.core.dom.SimpleName;
import org.eclipse.jdt.core.dom.SingleVariableDeclaration;
import org.eclipse.jdt.core.dom.TypeDeclaration;
import org.eclipse.jdt.core.dom.rewrite.ASTRewrite;
@@ -168,4 +169,56 @@
assertEqualString(preview, buf.toString());
}
+
+ @SuppressWarnings({ "rawtypes", "deprecation" })
+ public void test003() throws Exception {
+ if (this.apiLevel != 16) {
+ System.err.println("Test "+getName()+" requires a JRE 16");
+ return;
+ }
+ IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
+ StringBuffer buf= new StringBuffer();
+ buf= new StringBuffer();
+ buf.append("package test1;\n");
+ buf.append("public class X {\n");
+ buf.append(" void foo(Object o) {\n");
+ buf.append(" if (o instanceof String s)\n");
+ buf.append(" ;\n");
+ buf.append(" }\n");
+ buf.append("}\n");
+ ICompilationUnit cu= pack1.createCompilationUnit("X.java", buf.toString(), false, null);
+
+ CompilationUnit astRoot= createAST(cu);
+ ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
+
+ AST ast= astRoot.getAST();
+
+ assertTrue("Parse errors", (astRoot.getFlags() & ASTNode.MALFORMED) == 0);
+ TypeDeclaration type= findTypeDeclaration(astRoot, "X");
+ MethodDeclaration methodDecl= findMethodDeclaration(type, "foo");
+ Block block= methodDecl.getBody();
+ List blockStatements= block.statements();
+ assertTrue("Number of statements not 1", blockStatements.size() == 1);
+ { // change left side
+ IfStatement ifStatement = (IfStatement)blockStatements.get(0);
+ PatternInstanceofExpression expr = (PatternInstanceofExpression)ifStatement.getExpression();
+
+ SimpleName name= ast.newSimpleName("x");
+ rewrite.replace(expr.getLeftOperand(), name, null);
+ }
+
+ String preview= evaluateRewrite(cu, rewrite);
+
+ buf= new StringBuffer();
+ buf.append("package test1;\n");
+ buf.append("public class X {\n");
+ buf.append(" void foo(Object o) {\n");
+ buf.append(" if (x instanceof String s)\n");
+ buf.append(" ;\n");
+ buf.append(" }\n");
+ buf.append("}\n");
+
+ assertEqualString(preview, buf.toString());
+
+ }
}
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/internal/core/dom/rewrite/ASTRewriteAnalyzer.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/internal/core/dom/rewrite/ASTRewriteAnalyzer.java
index 3f559b3..888d702 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/internal/core/dom/rewrite/ASTRewriteAnalyzer.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/internal/core/dom/rewrite/ASTRewriteAnalyzer.java
@@ -3143,9 +3143,9 @@
return doVisitUnchangedChildren(node);
}
- rewriteRequiredNode(node, InstanceofExpression.LEFT_OPERAND_PROPERTY);
- ensureSpaceAfterReplace(node, InstanceofExpression.LEFT_OPERAND_PROPERTY);
- rewriteRequiredNode(node, InstanceofExpression.RIGHT_OPERAND_PROPERTY);
+ rewriteRequiredNode(node, PatternInstanceofExpression.LEFT_OPERAND_PROPERTY);
+ ensureSpaceAfterReplace(node, PatternInstanceofExpression.LEFT_OPERAND_PROPERTY);
+ rewriteRequiredNode(node, PatternInstanceofExpression.RIGHT_OPERAND_PROPERTY);
return false;
}
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/internal/core/dom/rewrite/ASTRewriteFlattener.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/internal/core/dom/rewrite/ASTRewriteFlattener.java
index a48d252..81891ca 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/internal/core/dom/rewrite/ASTRewriteFlattener.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/internal/core/dom/rewrite/ASTRewriteFlattener.java
@@ -642,9 +642,9 @@
@Override
public boolean visit(PatternInstanceofExpression node) {
- getChildNode(node, InstanceofExpression.LEFT_OPERAND_PROPERTY).accept(this);
+ getChildNode(node, PatternInstanceofExpression.LEFT_OPERAND_PROPERTY).accept(this);
this.result.append(" instanceof "); //$NON-NLS-1$
- getChildNode(node, InstanceofExpression.RIGHT_OPERAND_PROPERTY).accept(this);
+ getChildNode(node, PatternInstanceofExpression.RIGHT_OPERAND_PROPERTY).accept(this);
return false;
}