scalameta / scalameta

Library to read, analyze, transform and generate Scala programs
http://scalameta.org/
BSD 3-Clause "New" or "Revised" License
1.11k stars 223 forks source link

can't mix ...$ with anything else in parameter lists #406

Closed xeno-by closed 7 years ago

xeno-by commented 8 years ago
scala> val paramss = List(List(param"x: Int"))
paramss: List[List[meta.Term.Param]] = List(List(x: Int))

scala> q"def foo(...$paramss)(x: Int) = ???"
<console>:31: error: Implementation restriction: can't mix ...$ with anything else in parameter lists.
       q"def foo(...$paramss)(x: Int) = ???"
                 ^
xeno-by commented 8 years ago

There are no fundamental reasons that would prevent us from doing this (except for things like val q"def foo(...$paramss1)(...$paramss2) = ..." = ...). We just need to bite the bullet and implement liftTreess correctly.

xeno-by commented 7 years ago

Looks like this was incorrectly marked as fixed by Github PR integration.

xeno-by commented 7 years ago

@olafurpg and I had a discussion, and we decided to pronounce quasiquotes feature-complete.

There are still some open issues (#46, #223, #251, #280 and others), but they all have two things in common: 1) they require non-trivial design work to be fixed, 2) they aren't popular at all. Given our recent decision to start avoiding unwarranted breaking changes in 2.0, we'll consider quasiquotes good enough at this point and will close all outstanding feature requests.

We will still be fixing bugs (in fact, I've fixed about a dozen of such bugs for 2.0), but without strong evidence our design efforts will be directed elsewhere.