Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Leading parens trips up sourcecode.Text #7

Open
lihaoyi opened this issue Mar 7, 2016 · 1 comment
Open

Leading parens trips up sourcecode.Text #7

lihaoyi opened this issue Mar 7, 2016 · 1 comment

Comments

@lihaoyi
Copy link
Member

lihaoyi commented Mar 7, 2016

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 poss in the captured AST

@JohnReedLOL
Copy link

I think that what's actually happening is it is doing

toString("omg" -> "omg"); ("omg" -> "omg")

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants