Open
Description
scala> def log[T](x: sourcecode.Text[T]) = println(s"[${x.source}]: ${x.value}")
log: [T](x: sourcecode.Text[T])Unit
scala> log(("omg" -> "omg").toString)
["omg" -> "omg"]: (omg,omg)
scala> // should have printed [("omg" -> "omg").toString]: (omg,omg)
As far as I can tell, Scalac sets the pos
of the overall tree provided to the macro to the pos
of the ->
. There thus just isn't any pos
anywhere at all which starts at the first (
, which is what we'd want.
OTOH, we can tell when we're falling short, since the last pos
within the tree should be within the range we parse. We may have to do a hacky parse-search to try and find a place where the parse encompasses all pos
s in the captured AST
Metadata
Metadata
Assignees
Labels
No labels