summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Suereth <Joshua.Suereth@gmail.com>2012-08-23 00:40:35 -0700
committerJosh Suereth <Joshua.Suereth@gmail.com>2012-08-23 00:40:35 -0700
commitcc85db9d403c0210472319c7da5839f2531c6948 (patch)
treeb20646915bcdb61172ed9e639cb0125a760ceda3
parentd0f49fe7a282f6516e7a2621693c11ceb06b91b1 (diff)
parent501ed0edf8c95ec16f66fbbddfaaa1c00a57e45c (diff)
downloadscala-cc85db9d403c0210472319c7da5839f2531c6948.tar.gz
scala-cc85db9d403c0210472319c7da5839f2531c6948.tar.bz2
scala-cc85db9d403c0210472319c7da5839f2531c6948.zip
Merge pull request #1177 from scalamacros/topic/abstypeof
exposes absTypeTag and absTypeOf
-rw-r--r--src/compiler/scala/reflect/macros/runtime/Aliases.scala2
-rw-r--r--src/library/scala/reflect/base/TypeTags.scala2
-rw-r--r--src/reflect/scala/reflect/macros/Aliases.scala2
3 files changed, 6 insertions, 0 deletions
diff --git a/src/compiler/scala/reflect/macros/runtime/Aliases.scala b/src/compiler/scala/reflect/macros/runtime/Aliases.scala
index 8b742755cd..5e15b61dbd 100644
--- a/src/compiler/scala/reflect/macros/runtime/Aliases.scala
+++ b/src/compiler/scala/reflect/macros/runtime/Aliases.scala
@@ -21,6 +21,8 @@ trait Aliases {
override type TypeTag[T] = universe.TypeTag[T]
override val AbsTypeTag = universe.AbsTypeTag
override val TypeTag = universe.TypeTag
+ override def absTypeTag[T](implicit attag: AbsTypeTag[T]) = attag
override def typeTag[T](implicit ttag: TypeTag[T]) = ttag
+ override def absTypeOf[T](implicit attag: AbsTypeTag[T]): Type = attag.tpe
override def typeOf[T](implicit ttag: TypeTag[T]): Type = ttag.tpe
} \ No newline at end of file
diff --git a/src/library/scala/reflect/base/TypeTags.scala b/src/library/scala/reflect/base/TypeTags.scala
index c9d1ccf5bc..b7e0c37a4b 100644
--- a/src/library/scala/reflect/base/TypeTags.scala
+++ b/src/library/scala/reflect/base/TypeTags.scala
@@ -250,9 +250,11 @@ trait TypeTags { self: Universe =>
}
// incantations
+ def absTypeTag[T](implicit attag: AbsTypeTag[T]) = attag
def typeTag[T](implicit ttag: TypeTag[T]) = ttag
// big thanks to Viktor Klang for this brilliant idea!
+ def absTypeOf[T](implicit attag: AbsTypeTag[T]): Type = attag.tpe
def typeOf[T](implicit ttag: TypeTag[T]): Type = ttag.tpe
}
diff --git a/src/reflect/scala/reflect/macros/Aliases.scala b/src/reflect/scala/reflect/macros/Aliases.scala
index 46b7066902..ad100d7e89 100644
--- a/src/reflect/scala/reflect/macros/Aliases.scala
+++ b/src/reflect/scala/reflect/macros/Aliases.scala
@@ -21,6 +21,8 @@ trait Aliases {
type TypeTag[T] = universe.TypeTag[T]
val AbsTypeTag = universe.AbsTypeTag
val TypeTag = universe.TypeTag
+ def absTypeTag[T](implicit attag: AbsTypeTag[T]) = attag
def typeTag[T](implicit ttag: TypeTag[T]) = ttag
+ def absTypeOf[T](implicit attag: AbsTypeTag[T]): Type = attag.tpe
def typeOf[T](implicit ttag: TypeTag[T]): Type = ttag.tpe
}