in facebook-clang-plugins/libtooling/ASTExporter.h [818:845]
void ASTExporter<ATDWriter>::dumpCXXCtorInitializer(
const CXXCtorInitializer &Init) {
const Expr *E = Init.getInit();
ObjectScope Scope(OF, 2 + (bool)E);
OF.emitTag("subject");
const FieldDecl *FD = Init.getAnyMember();
if (FD) {
VariantScope Scope(OF, "Member");
dumpDeclRef(*FD);
} else if (Init.isDelegatingInitializer()) {
VariantScope Scope(OF, "Delegating");
dumpQualTypeNoQuals(Init.getTypeSourceInfo()->getType());
} else {
VariantScope Scope(OF, "BaseClass");
{
TupleScope Scope(OF, 2);
dumpQualTypeNoQuals(Init.getTypeSourceInfo()->getType());
OF.emitBoolean(Init.isBaseVirtual());
}
}
OF.emitTag("source_range");
dumpSourceRange(Init.getSourceRange());
if (E) {
OF.emitTag("init_expr");
dumpStmt(E);
}
}