in facebook-clang-plugins/libtooling/ASTExporter.h [5365:5385]
void ASTExporter<ATDWriter>::dumpVersionTuple(const VersionTuple &VT) {
Optional<unsigned> minor = VT.getMinor();
Optional<unsigned> subminor = VT.getSubminor();
Optional<unsigned> build = VT.getBuild();
ObjectScope Scope(
OF, 1 + minor.hasValue() + subminor.hasValue() + build.hasValue());
OF.emitTag("major");
OF.emitInteger(VT.getMajor());
if (minor.hasValue()) {
OF.emitTag("minor");
OF.emitInteger(minor.getValue());
}
if (subminor.hasValue()) {
OF.emitTag("subminor");
OF.emitInteger(subminor.getValue());
}
if (build.hasValue()) {
OF.emitTag("build");
OF.emitInteger(build.getValue());
}
}