blob: 09a08586309ec10d83be1635ba85026e4bf34cf2 (
plain) (
tree)
|
|
scala> class X {
def methodIntIntInt(x: Int, y: Int) = x+y
}
defined class X
scala>
scala> import scala.reflect.runtime.universe._
import scala.reflect.runtime.universe._
scala> import scala.reflect.runtime.{ currentMirror => cm }
import scala.reflect.runtime.{currentMirror=>cm}
scala> def im: InstanceMirror = cm.reflect(new X)
im: reflect.runtime.universe.InstanceMirror
scala> val cs: ClassSymbol = im.symbol
cs: reflect.runtime.universe.ClassSymbol = class X
scala> val ts: Type = cs.info
ts: reflect.runtime.universe.Type =
scala.AnyRef {
def <init>(): X
def methodIntIntInt(x: scala.Int,y: scala.Int): scala.Int
}
scala> val ms: MethodSymbol = ts.decl(TermName("methodIntIntInt")).asMethod
ms: reflect.runtime.universe.MethodSymbol = method methodIntIntInt
scala> val MethodType( _, t1 ) = ms.info
t1: reflect.runtime.universe.Type = scala.Int
scala> val t2 = typeOf[scala.Int]
t2: reflect.runtime.universe.Type = Int
scala> t1 == t2
res0: Boolean = false
scala> t1 =:= t2
res1: Boolean = true
scala> t1 <:< t2
res2: Boolean = true
scala> t2 <:< t1
res3: Boolean = true
scala> :quit
|