diff options
author | Den Shabalin <den.shabalin@gmail.com> | 2013-10-19 20:10:09 +0200 |
---|---|---|
committer | Den Shabalin <den.shabalin@gmail.com> | 2013-10-19 20:44:10 +0200 |
commit | 6d4f43503f718610182d9529695d7aed02333e37 (patch) | |
tree | 13aec2d83cbaf4f5bc5d155a80c0c24a7011018e /src/reflect | |
parent | 8848f241616627b0c5beca38a5107c4eca3e10fd (diff) | |
download | scala-6d4f43503f718610182d9529695d7aed02333e37.tar.gz scala-6d4f43503f718610182d9529695d7aed02333e37.tar.bz2 scala-6d4f43503f718610182d9529695d7aed02333e37.zip |
SI-6840 fixes weird typing of quasiquote arguments
Previously quasiquote arguments were type checked against Any
which caused weird inference that made splicing of complex expressions
unusable:
val l1 = List(q"foo")
val l2 = List(q"bar")
q"f(..${l1 ++ l2})" // argument type checked as Any instead of List[Tree]
This is fixed by forcing compiler to type check against type
variable which itself isn't used in any other way.
Diffstat (limited to 'src/reflect')
-rw-r--r-- | src/reflect/scala/reflect/api/Quasiquotes.scala | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/reflect/scala/reflect/api/Quasiquotes.scala b/src/reflect/scala/reflect/api/Quasiquotes.scala index 8e993af382..3687ccba63 100644 --- a/src/reflect/scala/reflect/api/Quasiquotes.scala +++ b/src/reflect/scala/reflect/api/Quasiquotes.scala @@ -7,7 +7,7 @@ trait Quasiquotes { self: Universe => // using the mechanism implemented in `scala.tools.reflect.FastTrack` implicit class Quasiquote(ctx: StringContext) { protected trait api { - def apply(args: Any*): Any = macro ??? + def apply[T](args: T*): Any = macro ??? def unapply(scrutinee: Any): Any = macro ??? } object q extends api |