aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/ast/Desugar.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2016-09-24 19:13:20 +0200
committerMartin Odersky <odersky@gmail.com>2016-09-24 19:16:29 +0200
commit962377ebc23a4c6a2757bee99e6558dd6a93c067 (patch)
tree19134d4bfb0e804110b74c623e2460f51891af2a /src/dotty/tools/dotc/ast/Desugar.scala
parente2e1e8a43123de3c5594bad24af486b730e0b3c7 (diff)
downloaddotty-962377ebc23a4c6a2757bee99e6558dd6a93c067.tar.gz
dotty-962377ebc23a4c6a2757bee99e6558dd6a93c067.tar.bz2
dotty-962377ebc23a4c6a2757bee99e6558dd6a93c067.zip
Make InterpolatedString conform to ordering requirement
Arrange its sub-elements so that they appear strictly left to right.
Diffstat (limited to 'src/dotty/tools/dotc/ast/Desugar.scala')
-rw-r--r--src/dotty/tools/dotc/ast/Desugar.scala14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/dotty/tools/dotc/ast/Desugar.scala b/src/dotty/tools/dotc/ast/Desugar.scala
index d7ae1bf85..1bfbcdbeb 100644
--- a/src/dotty/tools/dotc/ast/Desugar.scala
+++ b/src/dotty/tools/dotc/ast/Desugar.scala
@@ -889,7 +889,15 @@ object desugar {
Apply(
ref(defn.SymbolClass.companionModule.termRef),
Literal(Constant(str)) :: Nil)
- case InterpolatedString(id, strs, elems) =>
+ case InterpolatedString(id, segments) =>
+ val strs = segments map {
+ case ts: Thicket => ts.trees.head
+ case t => t
+ }
+ val elems = segments flatMap {
+ case ts: Thicket => ts.trees.tail
+ case t => Nil
+ }
Apply(Select(Apply(Ident(nme.StringContext), strs), id), elems)
case InfixOp(l, op, r) =>
if (ctx.mode is Mode.Type)
@@ -1054,8 +1062,8 @@ object desugar {
ctx.error("illegal variable in pattern alternative", vble.pos)
case Annotated(arg, _) =>
collect(arg)
- case InterpolatedString(_, _, elems) =>
- elems foreach collect
+ case InterpolatedString(_, segments) =>
+ segments foreach collect
case InfixOp(left, _, right) =>
collect(left)
collect(right)