diff options
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.java | 314 |
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; + } } |