Соответствует типу указателя объекта Objective-C со спецификатором обнуляемости в LibTooling Clang

Допустим, у меня есть такой код:

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 с или без спецификатора обнуляемости?

Спасибо!

0 ответов

Другие вопросы по тегам