summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiles Sabin <miles@milessabin.com>2010-02-17 00:47:55 +0000
committerMiles Sabin <miles@milessabin.com>2010-02-17 00:47:55 +0000
commite8ffe2674afc37a61c28eb8c4d5406b9b17112d8 (patch)
tree567adf365284c4cebe7364b5483fa341021ad9a4
parentab33bb1b34b86a71fa792f4a1e9a388c73192f02 (diff)
downloadscala-e8ffe2674afc37a61c28eb8c4d5406b9b17112d8.tar.gz
scala-e8ffe2674afc37a61c28eb8c4d5406b9b17112d8.tar.bz2
scala-e8ffe2674afc37a61c28eb8c4d5406b9b17112d8.zip
Fix and test case for #3031. Review by odersky.
-rw-r--r--src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala8
-rw-r--r--test/files/positions/Unsupported2.scala5
2 files changed, 12 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala b/src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala
index a23b8339a3..9a3760b8c6 100644
--- a/src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala
+++ b/src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala
@@ -362,7 +362,13 @@ abstract class TreeBuilder {
/** The position of the closure that starts with generator at position `genpos`.
*/
- def closurePos(genpos: Position) = r2p(genpos.startOrPoint, genpos.point, body.pos.endOrPoint)
+ def closurePos(genpos: Position) = {
+ val end = body.pos match {
+ case NoPosition => genpos.point
+ case bodypos => bodypos.endOrPoint
+ }
+ r2p(genpos.startOrPoint, genpos.point, end)
+ }
// val result =
enums match {
diff --git a/test/files/positions/Unsupported2.scala b/test/files/positions/Unsupported2.scala
new file mode 100644
index 0000000000..e21df5ef0e
--- /dev/null
+++ b/test/files/positions/Unsupported2.scala
@@ -0,0 +1,5 @@
+object Unsupported2 {
+ for (k <- 0 until xs.xize)
+ for(i = 0 until (xs.size)) {
+ }
+}