diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-03-05 21:48:47 -0800 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-03-05 21:48:47 -0800 |
commit | 9a00d2bc6fd1b62daa8b52f2b9b92d2aa8487114 (patch) | |
tree | 163d36f515f35115aee7b852ec00bd1bddbefbe9 /test | |
parent | 6ad7de4011f526d6d2b13292039de37547b39c46 (diff) | |
parent | 1a84c86ce400d0a80065fa8d23a9506dc19e92f0 (diff) | |
download | scala-9a00d2bc6fd1b62daa8b52f2b9b92d2aa8487114.tar.gz scala-9a00d2bc6fd1b62daa8b52f2b9b92d2aa8487114.tar.bz2 scala-9a00d2bc6fd1b62daa8b52f2b9b92d2aa8487114.zip |
Merge 2.10.x into master.
Conflicts:
src/compiler/scala/tools/nsc/transform/Erasure.scala
Diffstat (limited to 'test')
-rw-r--r-- | test/files/pos/t7190.scala | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/files/pos/t7190.scala b/test/files/pos/t7190.scala new file mode 100644 index 0000000000..f7ccded1b4 --- /dev/null +++ b/test/files/pos/t7190.scala @@ -0,0 +1,26 @@ +import scala.language.experimental.macros +import scala.reflect.macros._ + +trait A[T] { + def min[U >: T](implicit ord: Numeric[U]): T = macro A.min[T, U] +} + +object A { + def min[T: c.WeakTypeTag, U >: T: c.WeakTypeTag](c: Context)(ord: c.Expr[Numeric[U]]): c.Expr[T] = { + c.universe.reify { + ord.splice.zero.asInstanceOf[T] + } + } +} + +class B extends A[Int] { + override def min[U >: Int](implicit ord: Numeric[U]): Int = macro B.min[U] +} + +object B { + def min[U >: Int: c.WeakTypeTag](c: Context)(ord: c.Expr[Numeric[U]]): c.Expr[Int] = { + c.universe.reify { + ord.splice.zero.asInstanceOf[Int] + } + } +}
\ No newline at end of file |