in facebook-clang-plugins/libtooling/ASTExporter.h [1669:1692]
void ASTExporter<ATDWriter>::VisitFieldDecl(const FieldDecl *D) {
ASTExporter<ATDWriter>::VisitDeclaratorDecl(D);
bool IsMutable = D->isMutable();
bool IsModulePrivate = D->isModulePrivate();
bool HasBitWidth = D->isBitField() && D->getBitWidth();
Expr *Init = D->getInClassInitializer();
ObjectScope Scope(OF,
0 + IsMutable + IsModulePrivate + HasBitWidth +
(bool)Init); // not covered by tests
OF.emitFlag("is_mutable", IsMutable);
OF.emitFlag("is_module_private", IsModulePrivate);
if (HasBitWidth) {
OF.emitTag("bit_width_expr");
dumpStmt(D->getBitWidth());
}
if (Init) {
OF.emitTag("init_expr");
dumpStmt(Init);
}
}