[clang] [clang-format] Add support for absl nullability macros (PR #130346)
Owen Pan via cfe-commits
cfe-commits at lists.llvm.org
Wed Mar 12 22:56:42 PDT 2025
================
@@ -3185,6 +3185,53 @@ TEST_F(TokenAnnotatorTest, UnderstandsAttributes) {
EXPECT_TOKEN(Tokens[5], tok::r_paren, TT_AttributeRParen);
}
+TEST_F(TokenAnnotatorTest, UnderstandsNullabilityAttributes) {
+ auto Tokens = annotate("x = (foo *_Nullable)*v;");
+ ASSERT_EQ(Tokens.size(), 11u) << Tokens;
+ EXPECT_TOKEN(Tokens[3], tok::identifier, TT_Unknown);
+ EXPECT_TOKEN(Tokens[4], tok::star, TT_PointerOrReference);
+ EXPECT_TOKEN(Tokens[5], tok::kw__Nullable, TT_Unknown);
+ EXPECT_TOKEN(Tokens[7], tok::star, TT_UnaryOperator);
+
+ Tokens = annotate("x = (foo *_Nonnull)*v;");
+ ASSERT_EQ(Tokens.size(), 11u) << Tokens;
+ EXPECT_TOKEN(Tokens[3], tok::identifier, TT_Unknown);
+ EXPECT_TOKEN(Tokens[4], tok::star, TT_PointerOrReference);
+ EXPECT_TOKEN(Tokens[5], tok::kw__Nonnull, TT_Unknown);
+ EXPECT_TOKEN(Tokens[7], tok::star, TT_UnaryOperator);
+
+ Tokens = annotate("x = (foo *_Null_unspecified)*v;");
+ ASSERT_EQ(Tokens.size(), 11u) << Tokens;
+ EXPECT_TOKEN(Tokens[3], tok::identifier, TT_Unknown);
+ EXPECT_TOKEN(Tokens[4], tok::star, TT_PointerOrReference);
+ EXPECT_TOKEN(Tokens[5], tok::kw__Null_unspecified, TT_Unknown);
+ EXPECT_TOKEN(Tokens[7], tok::star, TT_UnaryOperator);
+
+ // Under Google style, also handles the Abseil macro aliases for the
+ // nullability annotations.
+ FormatStyle Style = getGoogleStyle(FormatStyle::LK_Cpp);
+ Tokens = annotate("x = (foo *absl_nullable)*v;", Style);
+ ASSERT_EQ(Tokens.size(), 11u) << Tokens;
+ EXPECT_TOKEN(Tokens[3], tok::identifier, TT_Unknown);
+ EXPECT_TOKEN(Tokens[4], tok::star, TT_PointerOrReference);
+ EXPECT_TOKEN(Tokens[5], tok::identifier, TT_AttributeMacro);
+ EXPECT_TOKEN(Tokens[7], tok::star, TT_UnaryOperator);
+
+ Tokens = annotate("x = (foo *absl_nonnull)*v;", Style);
+ ASSERT_EQ(Tokens.size(), 11u) << Tokens;
+ EXPECT_TOKEN(Tokens[3], tok::identifier, TT_Unknown);
----------------
owenca wrote:
```suggestion
```
https://github.com/llvm/llvm-project/pull/130346
More information about the cfe-commits
mailing list