diff options
author | Li Haoyi <haoyi@dropbox.com> | 2014-11-01 11:20:10 -0700 |
---|---|---|
committer | Li Haoyi <haoyi@dropbox.com> | 2014-11-01 11:20:10 -0700 |
commit | 02099a8b3bcedc63052306b85aad09dbfa719464 (patch) | |
tree | fde1350ff133929900d65fd16ff7b18674d41fd4 /scalatexApi/src/main/scala | |
parent | 0d91fb8632b4f7db48778c15f0a9699f82f92e6c (diff) | |
download | hands-on-scala-js-02099a8b3bcedc63052306b85aad09dbfa719464.tar.gz hands-on-scala-js-02099a8b3bcedc63052306b85aad09dbfa719464.tar.bz2 hands-on-scala-js-02099a8b3bcedc63052306b85aad09dbfa719464.zip |
Error messages in argument lists work
Diffstat (limited to 'scalatexApi/src/main/scala')
-rw-r--r-- | scalatexApi/src/main/scala/scalatex/stages/Compiler.scala | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/scalatexApi/src/main/scala/scalatex/stages/Compiler.scala b/scalatexApi/src/main/scala/scalatex/stages/Compiler.scala index 292610c..618402c 100644 --- a/scalatexApi/src/main/scala/scalatex/stages/Compiler.scala +++ b/scalatexApi/src/main/scala/scalatex/stages/Compiler.scala @@ -121,16 +121,35 @@ object Compiler{ val res = atPos(posFor(fragPos.point + b.offset))(q"$l(..$contentTrees)") res - case (l, WN.Block(ws, Some(args), content, _)) => + case (l, b @ WN.Block(ws, Some(args), content, _)) => + val snippet = s"{$args ()}" val skeleton = c.parse(snippet) - val Function(vparamss, body) = skeleton - val func = Function(vparamss, q"Seq[$fragType](..${content.map(compileTree(_))})") + val Function(vparams, body) = skeleton + println("XXXXX") + println(snippet) + println("XXXXX") + println(vparams.map(showCode(_, printPositions = true))) + vparams.map(_.foreach { t => + println(t + "\t" + t.pos) + if (t.pos != NoPosition) + c.internal.setPos(t, posFor(fragPos.point + t.pos.point)) + }) + println(vparams.map(showCode(_, printPositions = true))) + println("XXXXX") + val contentTrees = content.map{t => + val tree = compileTree(t) + c.internal.setPos(tree, posFor(fragPos.point + t.offset)) + tree + } + + val func = Function(vparams, q"Seq[$fragType](..$contentTrees)") c.internal.setPos(func, posFor(fragPos.point + skeleton.pos.point)) val res = q"$l($func)" - c.internal.setPos(res, fragPos) - println("BB " + res) + c.internal.setPos(res, posFor(fragPos.point + b.offset)) + println(showCode(res, printPositions = true)) + println("XXXXX") res } |