summaryrefslogtreecommitdiff
path: root/tests/manual/cplusplus/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/manual/cplusplus/main.cpp')
-rw-r--r--tests/manual/cplusplus/main.cpp13
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;
}