diff options
Diffstat (limited to 'tests/manual/cplusplus/main.cpp')
-rw-r--r-- | tests/manual/cplusplus/main.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/tests/manual/cplusplus/main.cpp b/tests/manual/cplusplus/main.cpp index 3953256f7c..6395d70e4f 100644 --- a/tests/manual/cplusplus/main.cpp +++ b/tests/manual/cplusplus/main.cpp @@ -73,8 +73,9 @@ public: void rewrite(const TranslationUnit *unit, const QByteArray &contents, - QByteArray *out) const + QByteArray *out) { + _source = contents; const char *source = contents.constData(); unsigned previousTokenEndPosition = 0; for (unsigned i = 0; i < unit->tokenCount(); ++i) { @@ -104,6 +105,9 @@ public: previousTokenEndPosition = tk.end(); } } + +protected: + QByteArray _source; }; class SimpleRefactor: protected ASTVisitor, Rewrite { @@ -192,12 +196,13 @@ protected: return false; } - virtual bool visit(CppCastExpressionAST *ast) { + virtual bool visit(CppCastExpressionAST *ast) + { // Replace the C++ cast expression (e.g. static_cast<foo>(a)) with // the one generated by the pretty printer. std::ostringstream o; PrettyPrinter pp(control(), o); - pp(ast); + pp(ast, _source); remove(ast->firstToken(), ast->lastToken()); const std::string str = o.str(); insertTextBefore(ast->firstToken(), str.c_str()); @@ -267,7 +272,7 @@ int main(int argc, char *argv[]) printf("%s\n", out.constData()); } else if (test_pretty_printer) { PrettyPrinter pp(&control, std::cout); - pp(unit.ast()); + pp(unit.ast(), source); } return EXIT_SUCCESS; } |