diff options
author | Den Shabalin <den.shabalin@gmail.com> | 2013-08-07 11:19:40 +0200 |
---|---|---|
committer | Den Shabalin <den.shabalin@gmail.com> | 2013-08-08 13:30:58 +0200 |
commit | 36524c21964696ec71170970c6a65f9bb7aec8f0 (patch) | |
tree | 7f4dd7f6ea5aaa42b2d473f5095d5134924f7c66 /src/reflect/scala/reflect/internal/Importers.scala | |
parent | e9ccb416b307d853120411572a57cb57867a9afc (diff) | |
download | scala-36524c21964696ec71170970c6a65f9bb7aec8f0.tar.gz scala-36524c21964696ec71170970c6a65f9bb7aec8f0.tar.bz2 scala-36524c21964696ec71170970c6a65f9bb7aec8f0.zip |
SI-7331 tb.parse returns unpositioned trees
This commit gets rid off code wrapping that was previously used by
toolbox to get into correct parsing mode. Instead combination of
templateStats/accept(EOF) is used. This is the same solution as the one
used in repl and built-in scriptRunner
This pull request doesn't attempt to generalize this approach in any
way and re-use it all over the place due to the caution of possible
accidental compatibility breakage. I plan to do it separately against
master.
Additionally there are a few more changes that make importers be aware
of positions and a test for that (via @jedesah).
Diffstat (limited to 'src/reflect/scala/reflect/internal/Importers.scala')
-rw-r--r-- | src/reflect/scala/reflect/internal/Importers.scala | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/reflect/scala/reflect/internal/Importers.scala b/src/reflect/scala/reflect/internal/Importers.scala index 43902c1930..9a8dee1f15 100644 --- a/src/reflect/scala/reflect/internal/Importers.scala +++ b/src/reflect/scala/reflect/internal/Importers.scala @@ -443,7 +443,12 @@ trait Importers extends api.Importers { self: SymbolTable => } }) tryFixup() - mytree + // we have to be careful with position import as some shared trees + // like EmptyTree, emptyValDef don't support position assignment + if (tree.pos != NoPosition) + mytree.setPos(importPosition(tree.pos)) + else + mytree } def importValDef(tree: from.ValDef): ValDef = importTree(tree).asInstanceOf[ValDef] |