Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSarika Sinha2021-02-22 10:45:13 +0000
committerSarika Sinha2021-02-23 02:36:39 +0000
commit11e7b7d71c30fdb2f658085aedb10047bed40c87 (patch)
tree99ca88cc2f01fc8b1335dd94945422773a44d32c
parentbf16d2ae550e528402f8b7c6df448d7aa5c896ac (diff)
downloadeclipse.jdt.core-11e7b7d71c30fdb2f658085aedb10047bed40c87.tar.gz
eclipse.jdt.core-11e7b7d71c30fdb2f658085aedb10047bed40c87.tar.xz
eclipse.jdt.core-11e7b7d71c30fdb2f658085aedb10047bed40c87.zip
Bug 571399 - [16] 2 tests failing in the Y- buildY20210225-1000Y20210224-1000Y20210223-1050
-rw-r--r--org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingInstanceOfPatternExpressionTest.java53
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/internal/core/dom/rewrite/ASTRewriteAnalyzer.java6
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/internal/core/dom/rewrite/ASTRewriteFlattener.java4
3 files changed, 58 insertions, 5 deletions
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 5130a300a5..2d9729c3c7 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.CompilationUnit;
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 @@ public class ASTRewritingInstanceOfPatternExpressionTest extends ASTRewritingTes
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 3f559b3d36..888d702df1 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 @@ public final class ASTRewriteAnalyzer extends ASTVisitor {
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 a48d2522fe..81891ca7a3 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 @@ public class ASTRewriteFlattener extends ASTVisitor {
@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;
}

Back to the top