| 60 | } |
| 61 | |
| 62 | void findLambdaEndTokenTest() { |
| 63 | const Token* nullTok = nullptr; |
| 64 | ASSERT(nullptr == (::findLambdaEndToken)(nullTok)); |
| 65 | ASSERT_EQUALS(false, findLambdaEndToken("void f() { }")); |
| 66 | ASSERT_EQUALS(true, findLambdaEndToken("[]{ }")); |
| 67 | ASSERT_EQUALS(true, findLambdaEndToken("[]{ return 0; }")); |
| 68 | ASSERT_EQUALS(true, findLambdaEndToken("[](){ }")); |
| 69 | ASSERT_EQUALS(true, findLambdaEndToken("[&](){ }")); |
| 70 | ASSERT_EQUALS(true, findLambdaEndToken("[&, i](){ }")); |
| 71 | ASSERT_EQUALS(true, findLambdaEndToken("[](void) { return -1; }")); |
| 72 | ASSERT_EQUALS(true, findLambdaEndToken("[](int a, int b) { return a + b; }")); |
| 73 | ASSERT_EQUALS(true, findLambdaEndToken("[](int a, int b) mutable { return a + b; }")); |
| 74 | ASSERT_EQUALS(true, findLambdaEndToken("[](int a, int b) constexpr { return a + b; }")); |
| 75 | ASSERT_EQUALS(true, findLambdaEndToken("[](void) -> int { return -1; }")); |
| 76 | ASSERT_EQUALS(true, findLambdaEndToken("[](void) mutable -> int { return -1; }")); |
| 77 | ASSERT_EQUALS(false, findLambdaEndToken("[](void) foo -> int { return -1; }")); |
| 78 | ASSERT_EQUALS(true, findLambdaEndToken("[](void) constexpr -> int { return -1; }")); |
| 79 | ASSERT_EQUALS(true, findLambdaEndToken("[](void) constexpr -> int* { return x; }")); |
| 80 | ASSERT_EQUALS(true, findLambdaEndToken("[](void) constexpr -> const * int { return x; }")); |
| 81 | ASSERT_EQUALS(true, findLambdaEndToken("[](void) mutable -> const * int { return x; }")); |
| 82 | ASSERT_EQUALS(true, findLambdaEndToken("[](void) constexpr -> const ** int { return x; }")); |
| 83 | ASSERT_EQUALS(true, findLambdaEndToken("[](void) constexpr -> const * const* int { return x; }")); |
| 84 | ASSERT_EQUALS(false, findLambdaEndToken("int** a[] { new int*[2] { new int, new int} };", "[ ]")); |
| 85 | ASSERT_EQUALS(false, findLambdaEndToken("int** a[] { new int*[2] { new int, new int} };", "[ 2")); |
| 86 | ASSERT_EQUALS(false, findLambdaEndToken("shared_ptr<Type *[]> sp{ new Type *[2] {new Type, new Type}, Deleter<Type>{ 2 } };", "[ 2")); |
| 87 | ASSERT_EQUALS(true, findLambdaEndToken("int i = 5 * []{ return 7; }();", "[", /*checkNext*/ false)); |
| 88 | } |
| 89 | |
| 90 | #define findLambdaStartToken(...) findLambdaStartToken_(__FILE__, __LINE__, __VA_ARGS__) |
| 91 | template<size_t size> |
nothing calls this directly
no test coverage detected