Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNathan Ridge2019-10-02 02:10:03 +0000
committerNathan Ridge2019-10-14 16:22:43 +0000
commit02789c6a1e31a88583349c9c4a394f1e7e8f9fb1 (patch)
tree27dd19de7e6ca37b31f657f23274f8224ba1285a /core/org.eclipse.cdt.core.tests
parent5c77776dcd0bd006d0161cc0d7d6870e738dd8b0 (diff)
downloadorg.eclipse.cdt-02789c6a1e31a88583349c9c4a394f1e7e8f9fb1.tar.gz
org.eclipse.cdt-02789c6a1e31a88583349c9c4a394f1e7e8f9fb1.tar.xz
org.eclipse.cdt-02789c6a1e31a88583349c9c4a394f1e7e8f9fb1.zip
Bug 551689 - Fix equivalence computation for simple literals
We were using equals() on char[] array objects which returned false if the objects were distinct, even if they contained the same characters. Change-Id: Iff5da52c67a0c17d857d791f57e768aafa7e165d
Diffstat (limited to 'core/org.eclipse.cdt.core.tests')
-rw-r--r--core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java19
1 files changed, 19 insertions, 0 deletions
diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java
index bb6cb8876b0..d27cea8328e 100644
--- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java
+++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java
@@ -103,6 +103,7 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCompositeTypeSpecifier;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCompositeTypeSpecifier.ICPPASTBaseSpecifier;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTConversionName;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTDeleteExpression;
+import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTExpression;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTFunctionCallExpression;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTFunctionDeclarator;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTFunctionDefinition;
@@ -13407,4 +13408,22 @@ public class AST2CPPTests extends AST2CPPTestBase {
public void testClassFromInitList_549036() throws Exception {
parseAndCheckImplicitNameBindings();
}
+
+ // int a = 42, b = 42;
+ // float c = 3.14, d = 3.14;
+ // char e[] = "waldo", f[] = "waldo";
+ public void testLiteralExpressionEquivalence_551689() throws Exception {
+ BindingAssertionHelper helper = getAssertionHelper();
+ ICPPASTExpression a = helper.assertNode("a = 42", "42");
+ ICPPASTExpression b = helper.assertNode("b = 42", "42");
+ assertTrue(a.getEvaluation().isEquivalentTo(b.getEvaluation()));
+
+ ICPPASTExpression c = helper.assertNode("c = 3.14", "3.14");
+ ICPPASTExpression d = helper.assertNode("d = 3.14", "3.14");
+ assertTrue(c.getEvaluation().isEquivalentTo(d.getEvaluation()));
+
+ ICPPASTExpression e = helper.assertNode("e[] = \"waldo\"", "\"waldo\"");
+ ICPPASTExpression f = helper.assertNode("f[] = \"waldo\"", "\"waldo\"");
+ assertTrue(e.getEvaluation().isEquivalentTo(f.getEvaluation()));
+ }
}

Back to the top