diff options
author | Eugene Burmako <xeno.by@gmail.com> | 2014-03-03 11:26:13 +0100 |
---|---|---|
committer | Eugene Burmako <xeno.by@gmail.com> | 2014-03-03 11:26:13 +0100 |
commit | cb80ac4a05eadc7b959eeecfa4e4262b9223c05a (patch) | |
tree | 3f30e6796364b731472209d94c79da68c3492e4d | |
parent | 24ff7d7f7930ee9917465a9fe762f891251a58f6 (diff) | |
parent | c05153d907b52037cd638fd9a4d30f3e885520c9 (diff) | |
download | scala-cb80ac4a05eadc7b959eeecfa4e4262b9223c05a.tar.gz scala-cb80ac4a05eadc7b959eeecfa4e4262b9223c05a.tar.bz2 scala-cb80ac4a05eadc7b959eeecfa4e4262b9223c05a.zip |
Merge pull request #3592 from densh/si/8281
SI-8281 check for unbound placeholder parameters in quasiquote parser
-rw-r--r-- | src/compiler/scala/tools/reflect/quasiquotes/Parsers.scala | 3 | ||||
-rw-r--r-- | test/files/scalacheck/quasiquotes/ErrorProps.scala | 12 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/reflect/quasiquotes/Parsers.scala b/src/compiler/scala/tools/reflect/quasiquotes/Parsers.scala index af17ae9ac0..b68022afd9 100644 --- a/src/compiler/scala/tools/reflect/quasiquotes/Parsers.scala +++ b/src/compiler/scala/tools/reflect/quasiquotes/Parsers.scala @@ -22,7 +22,8 @@ trait Parsers { self: Quasiquotes => def parse(code: String): Tree = { try { val file = new BatchSourceFile(nme.QUASIQUOTE_FILE, code) - new QuasiquoteParser(file).parseRule(entryPoint) + val parser = new QuasiquoteParser(file) + parser.checkNoEscapingPlaceholders { parser.parseRule(entryPoint) } } catch { case mi: MalformedInput => c.abort(correspondingPosition(mi.offset), mi.msg) } diff --git a/test/files/scalacheck/quasiquotes/ErrorProps.scala b/test/files/scalacheck/quasiquotes/ErrorProps.scala index d61119d98f..3d9b27de77 100644 --- a/test/files/scalacheck/quasiquotes/ErrorProps.scala +++ b/test/files/scalacheck/quasiquotes/ErrorProps.scala @@ -160,6 +160,18 @@ object ErrorProps extends QuasiquoteProperties("errors") { q"$n" """) + property("SI-8211: check unbound placeholder paremeters") = fails( + "unbound placeholder parameter", + """ + q"_" + """) + + property("SI-8211: check unbound wildcard types") = fails( + "unbound wildcard type", + """ + tq"_" + """) + // // Make sure a nice error is reported in this case // { import Flag._; val mods = NoMods; q"lazy $mods val x: Int" } } |