================
@@ -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);
----------------
owenca wrote:

```suggestion
  auto Style = getGoogleStyle(FormatStyle::LK_Cpp);
  auto Tokens = annotate("x = (foo *absl_nullable)*v;", Style);
```

https://github.com/llvm/llvm-project/pull/130346
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to