in facebook-clang-plugins/libtooling/ASTExporter.h [2950:2975]
void ASTExporter<ATDWriter>::VisitObjCPropertyImplDecl(
const ObjCPropertyImplDecl *D) {
VisitDecl(D);
const ObjCPropertyDecl *PD = D->getPropertyDecl();
const ObjCIvarDecl *ID = D->getPropertyIvarDecl();
ObjectScope Scope(OF, 1 + (bool)PD + (bool)ID); // not covered by tests
OF.emitTag("implementation");
switch (D->getPropertyImplementation()) {
case ObjCPropertyImplDecl::Synthesize:
OF.emitSimpleVariant("Synthesize");
break;
case ObjCPropertyImplDecl::Dynamic:
OF.emitSimpleVariant("Dynamic");
break;
}
if (PD) {
OF.emitTag("property_decl");
dumpDeclRef(*PD);
}
if (ID) {
OF.emitTag("ivar_decl");
dumpDeclRef(*ID);
}
}