diff options
author | Eugene Burmako <xeno.by@gmail.com> | 2012-08-21 18:17:43 +0200 |
---|---|---|
committer | Eugene Burmako <xeno.by@gmail.com> | 2012-08-21 18:23:02 +0200 |
commit | 501ed0edf8c95ec16f66fbbddfaaa1c00a57e45c (patch) | |
tree | 1e00e067d09f6e076934da8921247c53e424f3fc | |
parent | 376427590178989e1eefd2bf12123399169c3235 (diff) | |
download | scala-501ed0edf8c95ec16f66fbbddfaaa1c00a57e45c.tar.gz scala-501ed0edf8c95ec16f66fbbddfaaa1c00a57e45c.tar.bz2 scala-501ed0edf8c95ec16f66fbbddfaaa1c00a57e45c.zip |
exposes absTypeTag and absTypeOf
to be symmetric with typeTag and typeOf.
this is especially important for macro development,
since only c.AbsTypeTag context bounds can be used on macro implementations
-rw-r--r-- | src/compiler/scala/reflect/macros/runtime/Aliases.scala | 2 | ||||
-rw-r--r-- | src/library/scala/reflect/base/TypeTags.scala | 2 | ||||
-rw-r--r-- | src/reflect/scala/reflect/macros/Aliases.scala | 2 |
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 } |