aboutsummaryrefslogtreecommitdiff
path: root/clang/unittests/Format/TokenAnnotatorTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/unittests/Format/TokenAnnotatorTest.cpp')
-rw-r--r--clang/unittests/Format/TokenAnnotatorTest.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/clang/unittests/Format/TokenAnnotatorTest.cpp b/clang/unittests/Format/TokenAnnotatorTest.cpp
index 3e9638d..3735316 100644
--- a/clang/unittests/Format/TokenAnnotatorTest.cpp
+++ b/clang/unittests/Format/TokenAnnotatorTest.cpp
@@ -3164,6 +3164,22 @@ TEST_F(TokenAnnotatorTest, CppAltOperatorKeywords) {
EXPECT_TOKEN(Tokens[1], tok::identifier, TT_StartOfName);
}
+TEST_F(TokenAnnotatorTest, FunctionTryBlock) {
+ auto Tokens =
+ annotate("Foo::Foo(int x, int y) try\n"
+ " : foo{[] -> std::string { return {}; }(), x}, bar{y} {\n"
+ "} catch (...) {\n"
+ "}");
+ ASSERT_EQ(Tokens.size(), 45u);
+ EXPECT_TOKEN(Tokens[2], tok::identifier, TT_CtorDtorDeclName);
+ EXPECT_TOKEN(Tokens[11], tok::colon, TT_CtorInitializerColon);
+ EXPECT_TOKEN(Tokens[14], tok::l_square, TT_LambdaLSquare);
+ EXPECT_TOKEN(Tokens[16], tok::arrow, TT_TrailingReturnArrow);
+ EXPECT_TOKEN(Tokens[20], tok::l_brace, TT_LambdaLBrace);
+ EXPECT_TOKEN(Tokens[31], tok::comma, TT_CtorInitializerComma);
+ EXPECT_TOKEN(Tokens[36], tok::l_brace, TT_FunctionLBrace);
+}
+
} // namespace
} // namespace format
} // namespace clang