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 (): 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