diff options
Diffstat (limited to 'test/files/run/reflect-resolveoverload1.scala')
-rw-r--r-- | test/files/run/reflect-resolveoverload1.scala | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/test/files/run/reflect-resolveoverload1.scala b/test/files/run/reflect-resolveoverload1.scala new file mode 100644 index 0000000000..a859a0ec4e --- /dev/null +++ b/test/files/run/reflect-resolveoverload1.scala @@ -0,0 +1,19 @@ +import scala.reflect.runtime.universe._ +import scala.reflect.runtime.{currentMirror => cm} + +object Test extends App { + + val s = "hello world" + val m = cm.reflect(s) + val sc = m.symbol + val st = sc.asType + val meth = (st member newTermName("indexOf")).asTermSymbol + val IntType = definitions.IntClass.asType + val indexOf = (meth resolveOverloaded(posVargs = List(IntType))).asMethodSymbol + assert(m.reflectMethod(indexOf)('w') == 6) + assert((m.reflectMethod(indexOf)('w') match { case x: Int => x }) == 6) + + val meth2 = (st member newTermName("substring")).asTermSymbol + val substring = (meth2 resolveOverloaded(posVargs = List(IntType, IntType))).asMethodSymbol + assert(m.reflectMethod(substring)(2, 6) == "llo ") +} |