aboutsummaryrefslogtreecommitdiff
path: root/tests/untried/neg/t5903c/Macros_1.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/untried/neg/t5903c/Macros_1.scala')
-rw-r--r--tests/untried/neg/t5903c/Macros_1.scala26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/untried/neg/t5903c/Macros_1.scala b/tests/untried/neg/t5903c/Macros_1.scala
new file mode 100644
index 000000000..4792f0045
--- /dev/null
+++ b/tests/untried/neg/t5903c/Macros_1.scala
@@ -0,0 +1,26 @@
+import scala.reflect.macros.blackbox.Context
+import language.experimental.macros
+
+object Interpolation {
+ implicit class TestInterpolation(c: StringContext) {
+ object t {
+ def unapply[T](x: T): Any = 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)
+ """
+ }
+ }
+}