summaryrefslogtreecommitdiff
path: root/test/files/neg/t5903c/Macros_1.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2013-08-17 23:42:40 -0700
committerPaul Phillips <paulp@improving.org>2013-08-17 23:42:40 -0700
commita9efda40ee30796d3458604869a87a2c91f3efbf (patch)
tree7d1e685110c50ae37616c00f3c94450af03c4acc /test/files/neg/t5903c/Macros_1.scala
parent22b82a485a53ffad3490673a481fbd79d616ed71 (diff)
parent84a335916556cb0fe939d1c51f27d80d9cf980dc (diff)
downloadscala-a9efda40ee30796d3458604869a87a2c91f3efbf.tar.gz
scala-a9efda40ee30796d3458604869a87a2c91f3efbf.tar.bz2
scala-a9efda40ee30796d3458604869a87a2c91f3efbf.zip
Merge remote-tracking branch 'xeno-by/topic/patmat2' into patmat2
Diffstat (limited to 'test/files/neg/t5903c/Macros_1.scala')
-rw-r--r--test/files/neg/t5903c/Macros_1.scala26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/files/neg/t5903c/Macros_1.scala b/test/files/neg/t5903c/Macros_1.scala
new file mode 100644
index 0000000000..70efab3101
--- /dev/null
+++ b/test/files/neg/t5903c/Macros_1.scala
@@ -0,0 +1,26 @@
+import scala.reflect.macros.Context
+import language.experimental.macros
+
+object Interpolation {
+ implicit class TestInterpolation(c: StringContext) {
+ object t {
+ def unapply[T](x: T) = macro Macros.unapplyImpl[T]
+ }
+ }
+}
+
+object Macros {
+ def unapplyImpl[T: c.WeakTypeTag](c: Context)(x: c.Tree) = {
+ import c.universe._
+ if (!(c.weakTypeOf[Int] =:= c.weakTypeOf[T])) c.abort(c.enclosingPosition, s"${c.weakTypeOf[T]} is not supported")
+ else {
+ q"""
+ new {
+ def isEmpty = false
+ def get = 2
+ def unapply(x: Int) = this
+ }.unapply($x)
+ """
+ }
+ }
+}