Based off the PlaygroundTransform, this new ASTWalker leaves calls to __builtin_pc_before and __builtin_pc_after before and after a user would expect a program counter to enter a range of source code.
Previously, if we created an implicit tuple (i.e. no paren locations) and
exactly one of the first and last arguments had a valid location, we would
return an invalid SourceRange (one part valid, the other not). If we end
up in this situation (and the playground transform can) just return an
invalid range instead (as if the tuple were fully compiler-generated).
rdar://problem/19587250
Swift SVN r24703