aboutsummaryrefslogtreecommitdiff
path: root/tests/pending
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pending')
-rw-r--r--tests/pending/pos/annotated-original/C_2.scala7
-rw-r--r--tests/pending/pos/annotated-original/M_1.scala7
-rw-r--r--tests/pending/pos/annotated-treecopy/Impls_Macros_1.scala54
-rw-r--r--tests/pending/pos/annotated-treecopy/Test_2.scala5
-rw-r--r--tests/pending/pos/annotations.scala2
5 files changed, 2 insertions, 73 deletions
diff --git a/tests/pending/pos/annotated-original/C_2.scala b/tests/pending/pos/annotated-original/C_2.scala
deleted file mode 100644
index 36a09ffe0..000000000
--- a/tests/pending/pos/annotated-original/C_2.scala
+++ /dev/null
@@ -1,7 +0,0 @@
-object Bug {
- M.m {
- def s = ""
- M.m(s): @unchecked // error: macro has not been expanded.
- ???
- }
-}
diff --git a/tests/pending/pos/annotated-original/M_1.scala b/tests/pending/pos/annotated-original/M_1.scala
deleted file mode 100644
index 84a01bcce..000000000
--- a/tests/pending/pos/annotated-original/M_1.scala
+++ /dev/null
@@ -1,7 +0,0 @@
-import language.experimental.macros
-import scala.reflect.macros.blackbox.Context
-
-object M {
- def impl(c: Context)(a: c.Expr[Any]) = c.Expr[Any](c.untypecheck(a.tree))
- def m(a: Any) = macro impl
-}
diff --git a/tests/pending/pos/annotated-treecopy/Impls_Macros_1.scala b/tests/pending/pos/annotated-treecopy/Impls_Macros_1.scala
deleted file mode 100644
index 986287dfa..000000000
--- a/tests/pending/pos/annotated-treecopy/Impls_Macros_1.scala
+++ /dev/null
@@ -1,54 +0,0 @@
-import scala.language.experimental.macros
-import scala.reflect.macros.blackbox.Context
-import collection.mutable.ListBuffer
-import collection.mutable.Stack
-
-object Macros {
- trait TypedFunction {
- def tree: scala.reflect.runtime.universe.Tree
- val typeIn: String
- val typeOut: String
- }
-
- def tree[T,U](f:Function1[T,U]): Function1[T,U] = macro tree_impl[T,U]
-
- def tree_impl[T:c.WeakTypeTag,U:c.WeakTypeTag](c: Context)
- (f:c.Expr[Function1[T,U]]): c.Expr[Function1[T,U]] = {
- import c.universe._
- import internal._
- val ttag = c.weakTypeTag[U]
- f match {
- case Expr(Function(List(ValDef(_,n,tp,_)),b)) =>
- // normalize argument name
- var b1 = new Transformer {
- override def transform(tree: Tree): Tree = tree match {
- case Ident(x) if (x==n) => Ident(TermName("_arg"))
- case tt: TypeTree if tt.original != null => setOriginal(TypeTree(tt.tpe), transform(tt.original))
- // without the fix to LazyTreeCopier.Annotated, we would need to uncomment the line below to make the macro work
- // that's because the pattern match in the input expression gets expanded into Typed(<x>, TypeTree(<Int @unchecked>))
- // with the original of the TypeTree being Annotated(<@unchecked>, Ident(<x>))
- // then the macro tries to replace all Ident(<x>) trees with Ident(<_arg>), recurs into the original of the TypeTree, changes it,
- // but leaves the <@unchecked> part untouched. this signals the misguided LazyTreeCopier that the Annotated tree hasn't been modified,
- // so the original tree should be copied over and returned => crash when later <x: @unchecked> re-emerges from TypeTree.original
- // case Annotated(annot, arg) => treeCopy.Annotated(tree, transform(annot).duplicate, transform(arg))
- case _ => super.transform(tree)
- }
- }.transform(b)
-
- val reifiedTree = c.reifyTree(gen.mkRuntimeUniverseRef, EmptyTree, b1)
- val reifiedExpr = c.Expr[scala.reflect.runtime.universe.Expr[T => U]](reifiedTree)
- val template =
- c.universe.reify(new (T => U) with TypedFunction {
- override def toString = c.Expr[String](q"""${tp+" => "+ttag.tpe+" { "+b1.toString+" } "}""").splice // DEBUG
- def tree = reifiedExpr.splice.tree
- val typeIn = c.Expr[String](q"${tp.toString}").splice
- val typeOut = c.Expr[String](q"${ttag.tpe.toString}").splice
- def apply(_arg: T): U = c.Expr[U](b1)(ttag.asInstanceOf[c.WeakTypeTag[U]]).splice
- })
- val untyped = c.untypecheck(template.tree)
-
- c.Expr[T => U](untyped)
- case _ => sys.error("Bad function type")
- }
- }
-}
diff --git a/tests/pending/pos/annotated-treecopy/Test_2.scala b/tests/pending/pos/annotated-treecopy/Test_2.scala
deleted file mode 100644
index 1c6b862ef..000000000
--- a/tests/pending/pos/annotated-treecopy/Test_2.scala
+++ /dev/null
@@ -1,5 +0,0 @@
-object Test extends App {
- import Macros._
- // tree { (x:((Int,Int,Int),(Int,Int,Int))) => { val y=x; val ((r1,m1,c1),(r2,m2,c2))=y; (r1, m1 + m2 + r1 * c1 * c2, c2) } }
- tree { (x:((Int,Int,Int),(Int,Int,Int))) => { val ((r1,m1,c1),(r2,m2,c2))=x; (r1, m1 + m2 + r1 * c1 * c2, c2) } }
-}
diff --git a/tests/pending/pos/annotations.scala b/tests/pending/pos/annotations.scala
index 9235a1ee6..be15a3dcb 100644
--- a/tests/pending/pos/annotations.scala
+++ b/tests/pending/pos/annotations.scala
@@ -1,3 +1,5 @@
+// Needs an implementation of beanproperty to work
+
class ann(i: Int) extends scala.annotation.Annotation
class cfann(x: String) extends annotation.ClassfileAnnotation