The ASTDumper class is only used to implement the Stmt::dump() and Decl::dump() methods, and if it was a single .cpp file, it would be a private class, and so wouldn't need a header. I'm not sure if you are recommending that it be a single .cpp file or to keep it split. http://llvm-reviews.chandlerc.com/D52