[clang] [clang-format] Add support for absl nullability macros (PR #130346)

Jan Voung via cfe-commits cfe-commits at lists.llvm.org
Thu Mar 13 08:27:03 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);
+
----------------
jvoung wrote:

I had thought it would be a nice comparison for the `tok::star` tokens to have them together. But okay with removing too.

https://github.com/llvm/llvm-project/pull/130346


More information about the cfe-commits mailing list