1

可以说我有这样的代码:

A* a = [[A alloc] init];
B* _Null_unspecified b = [[B alloc] init];
C* _Nullable c = [[C alloc] init];
D* _Nonnull d = [[D alloc] init];

现在,我想创建一个匹配器来匹配变量声明。

目前我有这样的事情:

StatementMatcher NullUnspecifiedMatcher = 
  declStmt(hasSingleDecl(varDecl(hasType(objcObjectPointerType()))))`

有,objcObjectPointerType()但它只匹配a。有一些指针/引用匹配器,但它们根本不适用于这些变量声明。此外,我尝试过,isAnyPointer()但它适用于任何指针,无论是否为 obj-c。

我试图type()确保我所做的一切都是正确的,并且它有效。

那么,我怎样才能只匹配 obj-c 变量声明,有或没有可空性说明符?

谢谢!

4

0 回答 0