summaryrefslogtreecommitdiff
path: root/src/reflect/scala/reflect/api/Types.scala
diff options
context:
space:
mode:
authorEugene Burmako <xeno.by@gmail.com>2014-02-10 11:52:03 +0100
committerEugene Burmako <xeno.by@gmail.com>2014-02-15 09:32:26 +0100
commit49c99e63f1e6121ebd4d67d8eac9d245fc7137e8 (patch)
treefebfca81d3e559fd352ae379ccf9c18c8fd79488 /src/reflect/scala/reflect/api/Types.scala
parent1039174a73fd8e0d88a6f9a1eb23be34fec71b99 (diff)
downloadscala-49c99e63f1e6121ebd4d67d8eac9d245fc7137e8.tar.gz
scala-49c99e63f1e6121ebd4d67d8eac9d245fc7137e8.tar.bz2
scala-49c99e63f1e6121ebd4d67d8eac9d245fc7137e8.zip
addresses pull request feedback
Diffstat (limited to 'src/reflect/scala/reflect/api/Types.scala')
-rw-r--r--src/reflect/scala/reflect/api/Types.scala90
1 files changed, 56 insertions, 34 deletions
diff --git a/src/reflect/scala/reflect/api/Types.scala b/src/reflect/scala/reflect/api/Types.scala
index a0b3e672c5..90f12294c6 100644
--- a/src/reflect/scala/reflect/api/Types.scala
+++ b/src/reflect/scala/reflect/api/Types.scala
@@ -248,14 +248,17 @@ trait Types {
/** List of type arguments ingrained in this type reference.
* Depending on your use case you might or might not want to call `dealias` first.
- * scala> type T = List[Int]
- * defined type alias T
*
- * scala> typeOf[T].typeArgs
- * res0: List[reflect.runtime.universe.Type] = List()
+ * {{{
+ * scala> type T = List[Int]
+ * defined type alias T
+ *
+ * scala> typeOf[T].typeArgs
+ * res0: List[reflect.runtime.universe.Type] = List()
*
- * scala> typeOf[T].dealias.typeArgs
- * res1: List[reflect.runtime.universe.Type] = List(scala.Int)
+ * scala> typeOf[T].dealias.typeArgs
+ * res1: List[reflect.runtime.universe.Type] = List(scala.Int)
+ * }}}
*/
def typeArgs: List[Type]
@@ -277,26 +280,28 @@ trait Types {
* (can be a MethodType if the method has multiple argument lists),
* the type itself for all other types.
*
- * scala> class C { def foo[T](x: T)(y: T) = ??? }
- * defined class C
+ * {{{
+ * scala> class C { def foo[T](x: T)(y: T) = ??? }
+ * defined class C
*
- * scala> typeOf[C].member(TermName("foo")).asMethod
- * res0: reflect.runtime.universe.MethodSymbol = method foo
+ * scala> typeOf[C].member(TermName("foo")).asMethod
+ * res0: reflect.runtime.universe.MethodSymbol = method foo
*
- * scala> res0.info // PolyType wrapping a MethodType
- * res1: reflect.runtime.universe.Type = [T](x: T)(y: T)scala.Nothing
+ * scala> res0.info // PolyType wrapping a MethodType
+ * res1: reflect.runtime.universe.Type = [T](x: T)(y: T)scala.Nothing
*
- * scala> res1.resultType // MethodType wrapping a MethodType
- * res2: reflect.runtime.universe.Type = (x: T)(y: T)scala.Nothing
+ * scala> res1.resultType // MethodType wrapping a MethodType
+ * res2: reflect.runtime.universe.Type = (x: T)(y: T)scala.Nothing
*
- * scala> res1.resultType.resultType // vanilla MethodType
- * res3: reflect.runtime.universe.Type = (y: T)scala.Nothing
+ * scala> res1.resultType.resultType // vanilla MethodType
+ * res3: reflect.runtime.universe.Type = (y: T)scala.Nothing
*
- * scala> res1.resultType.resultType.resultType
- * res4: reflect.runtime.universe.Type = scala.Nothing
+ * scala> res1.resultType.resultType.resultType
+ * res4: reflect.runtime.universe.Type = scala.Nothing
*
- * scala> res1.finalResultType
- * res5: reflect.runtime.universe.Type = scala.Nothing
+ * scala> res1.finalResultType
+ * res5: reflect.runtime.universe.Type = scala.Nothing
+ * }}}
*
* @see finalResultType
*/
@@ -305,26 +310,43 @@ trait Types {
/** For a curried/nullary method or poly type its non-method result type,
* the type itself for all other types.
*
- * scala> class C { def foo[T](x: T)(y: T) = ??? }
- * defined class C
+ * {{{
+ * scala> class C {
+ * | def foo[T](x: T)(y: T) = ???
+ * | def bar: Int = ???
+ * | }
+ * defined class C
+ *
+ * scala> typeOf[C].member(TermName("foo")).asMethod
+ * res0: reflect.runtime.universe.MethodSymbol = method foo
+ *
+ * scala> res0.info // PolyType wrapping a MethodType
+ * res1: reflect.runtime.universe.Type = [T](x: T)(y: T)scala.Nothing
*
- * scala> typeOf[C].member(TermName("foo")).asMethod
- * res0: reflect.runtime.universe.MethodSymbol = method foo
+ * scala> res1.resultType // MethodType wrapping a MethodType
+ * res2: reflect.runtime.universe.Type = (x: T)(y: T)scala.Nothing
*
- * scala> res0.info // PolyType wrapping a MethodType
- * res1: reflect.runtime.universe.Type = [T](x: T)(y: T)scala.Nothing
+ * scala> res1.resultType.resultType // vanilla MethodType
+ * res3: reflect.runtime.universe.Type = (y: T)scala.Nothing
*
- * scala> res1.resultType // MethodType wrapping a MethodType
- * res2: reflect.runtime.universe.Type = (x: T)(y: T)scala.Nothing
+ * scala> res1.resultType.resultType.resultType
+ * res4: reflect.runtime.universe.Type = scala.Nothing
*
- * scala> res1.resultType.resultType // vanilla MethodType
- * res3: reflect.runtime.universe.Type = (y: T)scala.Nothing
+ * scala> res1.finalResultType
+ * res5: reflect.runtime.universe.Type = scala.Nothing
*
- * scala> res1.resultType.resultType.resultType
- * res4: reflect.runtime.universe.Type = scala.Nothing
+ * scala> typeOf[C].member(TermName("bar")).asMethod
+ * res6: reflect.runtime.universe.MethodSymbol = method bar
*
- * scala> res1.finalResultType
- * res5: reflect.runtime.universe.Type = scala.Nothing
+ * scala> res6.info
+ * res7: reflect.runtime.universe.Type = => scala.Int
+ *
+ * scala> res6.info.resultType
+ * res8: reflect.runtime.universe.Type = scala.Int
+ *
+ * scala> res6.info.finalResultType
+ * res9: reflect.runtime.universe.Type = scala.Int
+ * }}}
*
* @see resultType
*/