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 /src | |
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
Diffstat (limited to 'src')
-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 } |