File: reflection-equality.scala

package info (click to toggle)
scala 2.11.12-4
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster
  • size: 62,776 kB
  • sloc: java: 13,415; xml: 3,252; sh: 1,620; python: 756; makefile: 38; awk: 36; ansic: 6
file content (22 lines) | stat: -rw-r--r-- 606 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import scala.tools.partest.ReplTest

object Test extends ReplTest {
  def code = """
    |class X {
    |   def methodIntIntInt(x: Int, y: Int) = x+y
    |}
    |
    |import scala.reflect.runtime.universe._
    |import scala.reflect.runtime.{ currentMirror => cm }
    |def im: InstanceMirror = cm.reflect(new X)
    |val cs: ClassSymbol = im.symbol
    |val ts: Type = cs.info
    |val ms: MethodSymbol = ts.decl(TermName("methodIntIntInt")).asMethod
    |val MethodType( _, t1 ) = ms.info
    |val t2 = typeOf[scala.Int]
    |t1 == t2
    |t1 =:= t2
    |t1 <:< t2
    |t2 <:< t1
    |""".stripMargin
}