Added a new AST transformation pass called the

"Playground Transform."  This is an
instrumentation pass that adds calls to a
function called playground_log at locations of
interest.  Roughly speaking, these locations are

- Initialization of variables
- Modification of variables
- Expressions returning values
- Application of mutating methods on objects

The playground transform currently only finds
modifications of variables, but the intent is to
make all of these cases work.

It is enabled by a frontend option, and can
also be invoked by calling

swift::performPlaygroundTransform(SF)

which is the way LLDB, its main client, will
use it.

The frontend option is intended for testing,
and indeed I will add tests for this
transformation in the coming week as I bring
more functionality online.


Swift SVN r14801
This commit is contained in:
Sean Callanan
2014-03-07 22:59:19 +00:00
parent dce0673db1
commit 3b95376949
7 changed files with 246 additions and 0 deletions

View File

@@ -145,6 +145,9 @@ public:
/// termination.
bool PrintStats = false;
/// Indicates whether the playground transformation should be applied.
bool Playground = false;
/// Indicates whether standard help should be shown.
bool PrintHelp = false;