summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2014-01-16 11:57:32 -0800
committerAdriaan Moors <adriaan.moors@typesafe.com>2014-01-16 11:57:32 -0800
commit0b718ef09336570ca0a88794317037234c51d891 (patch)
treeb2a6931d7c6640ca3107561e38038be7d8538a34
parent681308a3aa737be1dae0f702fddadce88c70f90e (diff)
parent973c7066b8e0ab3529ce42989091f31d410a32ab (diff)
downloadscala-0b718ef09336570ca0a88794317037234c51d891.tar.gz
scala-0b718ef09336570ca0a88794317037234c51d891.tar.bz2
scala-0b718ef09336570ca0a88794317037234c51d891.zip
Merge pull request #3372 from densh/si/8148
fix anonymous functions with placeholders in quasiquotes
-rw-r--r--src/compiler/scala/tools/reflect/quasiquotes/Parsers.scala4
-rw-r--r--test/files/scalacheck/quasiquotes/TermConstructionProps.scala5
2 files changed, 7 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/reflect/quasiquotes/Parsers.scala b/src/compiler/scala/tools/reflect/quasiquotes/Parsers.scala
index 6e6b617e5c..1bd9323752 100644
--- a/src/compiler/scala/tools/reflect/quasiquotes/Parsers.scala
+++ b/src/compiler/scala/tools/reflect/quasiquotes/Parsers.scala
@@ -55,7 +55,7 @@ trait Parsers { self: Quasiquotes =>
def isHole(name: Name): Boolean = holeMap.contains(name)
- override implicit def fresh: FreshNameCreator = new FreshNameCreator(nme.QUASIQUOTE_PREFIX)
+ override implicit lazy val fresh: FreshNameCreator = new FreshNameCreator(nme.QUASIQUOTE_PREFIX)
override val treeBuilder = new ParserTreeBuilder {
override implicit def fresh: FreshNameCreator = parser.fresh
@@ -193,4 +193,4 @@ trait Parsers { self: Quasiquotes =>
}
object FreshName extends FreshNameExtractor(nme.QUASIQUOTE_PREFIX)
-} \ No newline at end of file
+}
diff --git a/test/files/scalacheck/quasiquotes/TermConstructionProps.scala b/test/files/scalacheck/quasiquotes/TermConstructionProps.scala
index 6fb05ff9a4..38fbfa9f7f 100644
--- a/test/files/scalacheck/quasiquotes/TermConstructionProps.scala
+++ b/test/files/scalacheck/quasiquotes/TermConstructionProps.scala
@@ -224,4 +224,9 @@ object TermConstructionProps extends QuasiquoteProperties("term construction") {
property("SI-8009") = test {
q"`foo`".asInstanceOf[reflect.internal.SymbolTable#Ident].isBackquoted
}
+
+ property("SI-8148") = test {
+ val q"($a, $b) => $_" = q"_ + _"
+ assert(a.name != b.name)
+ }
}