Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/rewrite/astwriter/ExpressionWriterTest.java')
-rw-r--r--core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/rewrite/astwriter/ExpressionWriterTest.java314
1 files changed, 157 insertions, 157 deletions
diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/rewrite/astwriter/ExpressionWriterTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/rewrite/astwriter/ExpressionWriterTest.java
index dc78eca4d8a..1d487f4cc17 100644
--- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/rewrite/astwriter/ExpressionWriterTest.java
+++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/rewrite/astwriter/ExpressionWriterTest.java
@@ -7,7 +7,7 @@
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
- *
+ *
* Contributors:
* Pascal Kesseli (HSR) - Initial API and implementation
*******************************************************************************/
@@ -41,168 +41,168 @@ import org.junit.Before;
import org.junit.Test;
public class ExpressionWriterTest extends TestCase {
- private static final String BR = System.getProperty("line.separator");
- private static CPPASTSimpleDeclSpecifier INT = new CPPASTSimpleDeclSpecifier();
- private static IASTName NO_NAME = new CPPASTName(new char[] {});
- private NodeCommentMap commentMap = new NodeCommentMap();
+ private static final String BR = System.getProperty("line.separator");
+ private static CPPASTSimpleDeclSpecifier INT = new CPPASTSimpleDeclSpecifier();
+ private static IASTName NO_NAME = new CPPASTName(new char[] {});
+ private NodeCommentMap commentMap = new NodeCommentMap();
private ASTVisitor visitor;
- static {
- INT.setType(IASTSimpleDeclSpecifier.t_int);
- }
+ static {
+ INT.setType(IASTSimpleDeclSpecifier.t_int);
+ }
@Override
- @Before
+ @Before
protected void setUp() throws Exception {
visitor = new ASTWriterVisitor(commentMap);
}
- @Test
- public void testWriteLambdaExpressionEmptyIntroducerNoDeclarator() throws Exception {
- ICPPASTLambdaExpression lambda = getEmptyLambdaExpression();
- lambda.accept(visitor);
- String expected = "[] {" + BR + " return 7;" + BR + "}" + BR;
- Assert.assertEquals(expected, visitor.toString());
- }
-
- @Test
- public void testWriteLambdaExpressionDefaultCaptureByCopyNoDeclarator() {
- ICPPASTLambdaExpression lambda = getEmptyLambdaExpression();
- lambda.setCaptureDefault(ICPPASTLambdaExpression.CaptureDefault.BY_COPY);
- lambda.accept(visitor);
- String expected = "[=] {" + BR + " return 7;" + BR + "}" + BR;
- Assert.assertEquals(expected, visitor.toString());
- }
-
- @Test
- public void testWriteLambdaExpressionDefaultCaptureByReferenceNoDeclarator() {
- ICPPASTLambdaExpression lambda = getEmptyLambdaExpression();
- lambda.setCaptureDefault(ICPPASTLambdaExpression.CaptureDefault.BY_REFERENCE);
- lambda.accept(visitor);
- String expected = "[&] {" + BR + " return 7;" + BR + "}" + BR;
- Assert.assertEquals(expected, visitor.toString());
- }
-
- @Test
- public void testWriteLambdaExpressionThisCaptureNoDeclarator() {
- ICPPASTLambdaExpression lambda = getEmptyLambdaExpression();
- CPPASTCapture thisCapture = new CPPASTCapture();
- thisCapture.setIsByReference(true);
- lambda.addCapture(thisCapture);
- lambda.accept(visitor);
- String expected = "[this] {" + BR + " return 7;" + BR + "}" + BR;
- Assert.assertEquals(expected, visitor.toString());
- }
-
- @Test
- public void testWriteLambdaExpressionStarThisCaptureNoDeclarator() {
- ICPPASTLambdaExpression lambda = getEmptyLambdaExpression();
- lambda.addCapture(new CPPASTCapture());
- lambda.accept(visitor);
- String expected = "[*this] {" + BR + " return 7;" + BR + "}" + BR;
- Assert.assertEquals(expected, visitor.toString());
- }
-
- @Test
- public void testWriteLambdaExpressionMixedCaptureNoDeclarator() {
- ICPPASTLambdaExpression lambda = getEmptyLambdaExpression();
- lambda.setCaptureDefault(ICPPASTLambdaExpression.CaptureDefault.BY_COPY);
- CPPASTCapture thisCapture = new CPPASTCapture();
- thisCapture.setIsByReference(true);
- lambda.addCapture(thisCapture);
- ICPPASTCapture x = new CPPASTCapture(), y = new CPPASTCapture();
- x.setIdentifier(new CPPASTName(new char[] { 'x' }));
- x.setIsByReference(true);
- y.setIdentifier(new CPPASTName(new char[] { 'y' }));
- lambda.addCapture(x);
- lambda.addCapture(y);
- lambda.accept(visitor);
- String r = "[=, this, &x, y] {" + BR + " return 7;" + BR + "}" + BR;
- Assert.assertEquals(r, visitor.toString());
- }
-
- @Test
- public void testWriteLambdaExpressionEmptyIntroducerSimpleDeclarator() throws Exception {
- ICPPASTLambdaExpression lambda = getEmptyLambdaExpression();
- lambda.setDeclarator(getSimpleFunctionDeclarator());
- lambda.accept(visitor);
- String r = "[](int i, int j) {" + BR + " return 7;" + BR + "}" + BR;
- Assert.assertEquals(r, visitor.toString());
- }
-
- @Test
- public void testWriteLambdaExpressionEmptyIntroducerMutableDeclarator() throws Exception {
- ICPPASTLambdaExpression lambda = getEmptyLambdaExpression();
- ICPPASTFunctionDeclarator f = getSimpleFunctionDeclarator();
- f.setMutable(true);
- lambda.setDeclarator(f);
- lambda.accept(visitor);
- String r = "[](int i, int j) mutable {" + BR + " return 7;" + BR + "}" + BR;
- Assert.assertEquals(r, visitor.toString());
- }
-
- @Test
- public void testWriteLambdaExpressionEmptyIntroducerExceptionSpecificationDeclarator() throws Exception {
- ICPPASTLambdaExpression lambda = getEmptyLambdaExpression();
- ICPPASTFunctionDeclarator f = getSimpleFunctionDeclarator();
- f.addExceptionSpecificationTypeId(new CPPASTTypeId(INT, new CPPASTDeclarator(NO_NAME)));
- lambda.setDeclarator(f);
- lambda.accept(visitor);
- String r = "[](int i, int j) throw (int) {" + BR + " return 7;" + BR + "}" + BR;
- Assert.assertEquals(r, visitor.toString());
- }
-
- @Test
- public void testWriteLambdaExpressionEmptyIntroducerTrailingReturnTypeDeclarator() throws Exception {
- ICPPASTLambdaExpression lambda = getEmptyLambdaExpression();
- ICPPASTFunctionDeclarator f = getSimpleFunctionDeclarator();
- f.setTrailingReturnType(new CPPASTTypeId(INT, new CPPASTDeclarator(NO_NAME)));
- lambda.setDeclarator(f);
- lambda.accept(visitor);
- String r = "[](int i, int j) -> int {" + BR + " return 7;" + BR + "}" + BR;
- Assert.assertEquals(r, visitor.toString());
- }
-
- @Test
- public void testWriteAllEmbracingLambdaExpression() {
- ICPPASTLambdaExpression lambda = getEmptyLambdaExpression();
- ICPPASTFunctionDeclarator f = getSimpleFunctionDeclarator();
- lambda.setCaptureDefault(ICPPASTLambdaExpression.CaptureDefault.BY_REFERENCE);
- ICPPASTCapture x = new CPPASTCapture(), y = new CPPASTCapture();
- x.setIdentifier(new CPPASTName(new char[] { 'x' }));
- y.setIdentifier(new CPPASTName(new char[] { 'y' }));
- y.setIsByReference(true);
- lambda.addCapture(x);
- lambda.addCapture(y);
- CPPASTCapture thisCapture = new CPPASTCapture();
- thisCapture.setIsByReference(true);
- lambda.addCapture(thisCapture);
- f.setMutable(true);
- f.setTrailingReturnType(new CPPASTTypeId(INT, new CPPASTDeclarator(NO_NAME)));
- f.addExceptionSpecificationTypeId(new CPPASTTypeId(INT, new CPPASTDeclarator(NO_NAME)));
- lambda.setDeclarator(f);
- lambda.accept(visitor);
- String r = "[&, x, &y, this](int i, int j) mutable throw (int) -> int {" + BR + " return 7;" + BR + "}" + BR;
- Assert.assertEquals(r, visitor.toString());
- }
-
- private static ICPPASTFunctionDeclarator getSimpleFunctionDeclarator() {
- ICPPASTFunctionDeclarator f = new CPPASTFunctionDeclarator(new CPPASTName());
- IASTName name = new CPPASTName(new char[] { 'i' });
- IASTDeclarator d = new CPPASTDeclarator(name);
- f.addParameterDeclaration(new CPPASTParameterDeclaration(INT, d));
- name = new CPPASTName(new char[] { 'j' });
- d = new CPPASTDeclarator(name);
- f.addParameterDeclaration(new CPPASTParameterDeclaration(INT, d));
- return f;
- }
-
- private static ICPPASTLambdaExpression getEmptyLambdaExpression() {
- ICPPASTLambdaExpression lambda = new CPPASTLambdaExpression();
- CPPASTCompoundStatement stmt = new CPPASTCompoundStatement();
- stmt.addStatement(new CPPASTReturnStatement(new CPPASTLiteralExpression(
- IASTLiteralExpression.lk_integer_constant, new char[] { '7' })));
- lambda.setBody(stmt);
- return lambda;
- }
+ @Test
+ public void testWriteLambdaExpressionEmptyIntroducerNoDeclarator() throws Exception {
+ ICPPASTLambdaExpression lambda = getEmptyLambdaExpression();
+ lambda.accept(visitor);
+ String expected = "[] {" + BR + " return 7;" + BR + "}" + BR;
+ Assert.assertEquals(expected, visitor.toString());
+ }
+
+ @Test
+ public void testWriteLambdaExpressionDefaultCaptureByCopyNoDeclarator() {
+ ICPPASTLambdaExpression lambda = getEmptyLambdaExpression();
+ lambda.setCaptureDefault(ICPPASTLambdaExpression.CaptureDefault.BY_COPY);
+ lambda.accept(visitor);
+ String expected = "[=] {" + BR + " return 7;" + BR + "}" + BR;
+ Assert.assertEquals(expected, visitor.toString());
+ }
+
+ @Test
+ public void testWriteLambdaExpressionDefaultCaptureByReferenceNoDeclarator() {
+ ICPPASTLambdaExpression lambda = getEmptyLambdaExpression();
+ lambda.setCaptureDefault(ICPPASTLambdaExpression.CaptureDefault.BY_REFERENCE);
+ lambda.accept(visitor);
+ String expected = "[&] {" + BR + " return 7;" + BR + "}" + BR;
+ Assert.assertEquals(expected, visitor.toString());
+ }
+
+ @Test
+ public void testWriteLambdaExpressionThisCaptureNoDeclarator() {
+ ICPPASTLambdaExpression lambda = getEmptyLambdaExpression();
+ CPPASTCapture thisCapture = new CPPASTCapture();
+ thisCapture.setIsByReference(true);
+ lambda.addCapture(thisCapture);
+ lambda.accept(visitor);
+ String expected = "[this] {" + BR + " return 7;" + BR + "}" + BR;
+ Assert.assertEquals(expected, visitor.toString());
+ }
+
+ @Test
+ public void testWriteLambdaExpressionStarThisCaptureNoDeclarator() {
+ ICPPASTLambdaExpression lambda = getEmptyLambdaExpression();
+ lambda.addCapture(new CPPASTCapture());
+ lambda.accept(visitor);
+ String expected = "[*this] {" + BR + " return 7;" + BR + "}" + BR;
+ Assert.assertEquals(expected, visitor.toString());
+ }
+
+ @Test
+ public void testWriteLambdaExpressionMixedCaptureNoDeclarator() {
+ ICPPASTLambdaExpression lambda = getEmptyLambdaExpression();
+ lambda.setCaptureDefault(ICPPASTLambdaExpression.CaptureDefault.BY_COPY);
+ CPPASTCapture thisCapture = new CPPASTCapture();
+ thisCapture.setIsByReference(true);
+ lambda.addCapture(thisCapture);
+ ICPPASTCapture x = new CPPASTCapture(), y = new CPPASTCapture();
+ x.setIdentifier(new CPPASTName(new char[] { 'x' }));
+ x.setIsByReference(true);
+ y.setIdentifier(new CPPASTName(new char[] { 'y' }));
+ lambda.addCapture(x);
+ lambda.addCapture(y);
+ lambda.accept(visitor);
+ String r = "[=, this, &x, y] {" + BR + " return 7;" + BR + "}" + BR;
+ Assert.assertEquals(r, visitor.toString());
+ }
+
+ @Test
+ public void testWriteLambdaExpressionEmptyIntroducerSimpleDeclarator() throws Exception {
+ ICPPASTLambdaExpression lambda = getEmptyLambdaExpression();
+ lambda.setDeclarator(getSimpleFunctionDeclarator());
+ lambda.accept(visitor);
+ String r = "[](int i, int j) {" + BR + " return 7;" + BR + "}" + BR;
+ Assert.assertEquals(r, visitor.toString());
+ }
+
+ @Test
+ public void testWriteLambdaExpressionEmptyIntroducerMutableDeclarator() throws Exception {
+ ICPPASTLambdaExpression lambda = getEmptyLambdaExpression();
+ ICPPASTFunctionDeclarator f = getSimpleFunctionDeclarator();
+ f.setMutable(true);
+ lambda.setDeclarator(f);
+ lambda.accept(visitor);
+ String r = "[](int i, int j) mutable {" + BR + " return 7;" + BR + "}" + BR;
+ Assert.assertEquals(r, visitor.toString());
+ }
+
+ @Test
+ public void testWriteLambdaExpressionEmptyIntroducerExceptionSpecificationDeclarator() throws Exception {
+ ICPPASTLambdaExpression lambda = getEmptyLambdaExpression();
+ ICPPASTFunctionDeclarator f = getSimpleFunctionDeclarator();
+ f.addExceptionSpecificationTypeId(new CPPASTTypeId(INT, new CPPASTDeclarator(NO_NAME)));
+ lambda.setDeclarator(f);
+ lambda.accept(visitor);
+ String r = "[](int i, int j) throw (int) {" + BR + " return 7;" + BR + "}" + BR;
+ Assert.assertEquals(r, visitor.toString());
+ }
+
+ @Test
+ public void testWriteLambdaExpressionEmptyIntroducerTrailingReturnTypeDeclarator() throws Exception {
+ ICPPASTLambdaExpression lambda = getEmptyLambdaExpression();
+ ICPPASTFunctionDeclarator f = getSimpleFunctionDeclarator();
+ f.setTrailingReturnType(new CPPASTTypeId(INT, new CPPASTDeclarator(NO_NAME)));
+ lambda.setDeclarator(f);
+ lambda.accept(visitor);
+ String r = "[](int i, int j) -> int {" + BR + " return 7;" + BR + "}" + BR;
+ Assert.assertEquals(r, visitor.toString());
+ }
+
+ @Test
+ public void testWriteAllEmbracingLambdaExpression() {
+ ICPPASTLambdaExpression lambda = getEmptyLambdaExpression();
+ ICPPASTFunctionDeclarator f = getSimpleFunctionDeclarator();
+ lambda.setCaptureDefault(ICPPASTLambdaExpression.CaptureDefault.BY_REFERENCE);
+ ICPPASTCapture x = new CPPASTCapture(), y = new CPPASTCapture();
+ x.setIdentifier(new CPPASTName(new char[] { 'x' }));
+ y.setIdentifier(new CPPASTName(new char[] { 'y' }));
+ y.setIsByReference(true);
+ lambda.addCapture(x);
+ lambda.addCapture(y);
+ CPPASTCapture thisCapture = new CPPASTCapture();
+ thisCapture.setIsByReference(true);
+ lambda.addCapture(thisCapture);
+ f.setMutable(true);
+ f.setTrailingReturnType(new CPPASTTypeId(INT, new CPPASTDeclarator(NO_NAME)));
+ f.addExceptionSpecificationTypeId(new CPPASTTypeId(INT, new CPPASTDeclarator(NO_NAME)));
+ lambda.setDeclarator(f);
+ lambda.accept(visitor);
+ String r = "[&, x, &y, this](int i, int j) mutable throw (int) -> int {" + BR + " return 7;" + BR + "}" + BR;
+ Assert.assertEquals(r, visitor.toString());
+ }
+
+ private static ICPPASTFunctionDeclarator getSimpleFunctionDeclarator() {
+ ICPPASTFunctionDeclarator f = new CPPASTFunctionDeclarator(new CPPASTName());
+ IASTName name = new CPPASTName(new char[] { 'i' });
+ IASTDeclarator d = new CPPASTDeclarator(name);
+ f.addParameterDeclaration(new CPPASTParameterDeclaration(INT, d));
+ name = new CPPASTName(new char[] { 'j' });
+ d = new CPPASTDeclarator(name);
+ f.addParameterDeclaration(new CPPASTParameterDeclaration(INT, d));
+ return f;
+ }
+
+ private static ICPPASTLambdaExpression getEmptyLambdaExpression() {
+ ICPPASTLambdaExpression lambda = new CPPASTLambdaExpression();
+ CPPASTCompoundStatement stmt = new CPPASTCompoundStatement();
+ stmt.addStatement(new CPPASTReturnStatement(
+ new CPPASTLiteralExpression(IASTLiteralExpression.lk_integer_constant, new char[] { '7' })));
+ lambda.setBody(stmt);
+ return lambda;
+ }
}

Back to the top