summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Shabalin <denys.shabalin@typesafe.com>2014-01-24 18:46:06 +0100
committerDenys Shabalin <denys.shabalin@typesafe.com>2014-01-24 18:46:06 +0100
commit40f1ff20927a1754f4aa7a417df62e3b87554d5a (patch)
tree8c56c311cc4f34302b5e511e7c5df3fe68a4b289
parentfdce4a0f64fbbe5b87c41f93ae33bb3084449fa3 (diff)
downloadscala-40f1ff20927a1754f4aa7a417df62e3b87554d5a.tar.gz
scala-40f1ff20927a1754f4aa7a417df62e3b87554d5a.tar.bz2
scala-40f1ff20927a1754f4aa7a417df62e3b87554d5a.zip
SI-8171 make tq"" an alias for empty type tree
-rw-r--r--src/compiler/scala/tools/reflect/quasiquotes/Parsers.scala7
-rw-r--r--test/files/scalacheck/quasiquotes/TypeConstructionProps.scala8
2 files changed, 13 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/reflect/quasiquotes/Parsers.scala b/src/compiler/scala/tools/reflect/quasiquotes/Parsers.scala
index 1bd9323752..ec4ca1c845 100644
--- a/src/compiler/scala/tools/reflect/quasiquotes/Parsers.scala
+++ b/src/compiler/scala/tools/reflect/quasiquotes/Parsers.scala
@@ -170,7 +170,12 @@ trait Parsers { self: Quasiquotes =>
}
object TypeParser extends Parser {
- def entryPoint = _.typ()
+ def entryPoint = { parser =>
+ if (parser.in.token == EOF)
+ TypeTree()
+ else
+ parser.typ()
+ }
}
object CaseParser extends Parser {
diff --git a/test/files/scalacheck/quasiquotes/TypeConstructionProps.scala b/test/files/scalacheck/quasiquotes/TypeConstructionProps.scala
index be7a96d91e..0984032084 100644
--- a/test/files/scalacheck/quasiquotes/TypeConstructionProps.scala
+++ b/test/files/scalacheck/quasiquotes/TypeConstructionProps.scala
@@ -28,4 +28,10 @@ object TypeConstructionProps extends QuasiquoteProperties("type construction")
val restpe = tq"C"
assert(tq"..$argtpes => $restpe" ≈ tq"(A, B) => C")
}
-} \ No newline at end of file
+
+ property("empty tq") = test {
+ val tt: TypeTree = tq" "
+ assert(tt.tpe == null)
+ assert(tt.original == null)
+ }
+}