summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2012-04-05 17:13:15 -0700
committerMartin Odersky <odersky@gmail.com>2012-04-05 17:13:15 -0700
commit754b4a85e4093f25cc10f092fefdb34215097c94 (patch)
tree9d698c61806df5bc6e6b49bfb76acd972332573e /test
parent2b89c3459d1d9a9aa9dd5aba75847274d6f74129 (diff)
downloadscala-754b4a85e4093f25cc10f092fefdb34215097c94.tar.gz
scala-754b4a85e4093f25cc10f092fefdb34215097c94.tar.bz2
scala-754b4a85e4093f25cc10f092fefdb34215097c94.zip
Test case for overloading resolution during reflection.
Diffstat (limited to 'test')
-rw-r--r--test/files/run/reflect-overload.scala16
1 files changed, 16 insertions, 0 deletions
diff --git a/test/files/run/reflect-overload.scala b/test/files/run/reflect-overload.scala
new file mode 100644
index 0000000000..af82a1948d
--- /dev/null
+++ b/test/files/run/reflect-overload.scala
@@ -0,0 +1,16 @@
+object Test extends App {
+ import reflect.mirror._
+
+ val s = "hello world"
+ val sc = symbolOfInstance(s)
+ val st = sc.asType
+ val m = st member newTermName("indexOf")
+ val IntType = definitions.IntClass.asType
+ val indexOf = m resolveOverloaded(actuals = List(IntType))
+ assert(invoke(s, indexOf)('w') == 6)
+ assert((invoke(s, indexOf)('w') match { case x: Int => x }) == 6)
+
+ val m2 = st member newTermName("substring")
+ val substring = m2 resolveOverloaded(actuals = List(IntType, IntType))
+ assert(invoke(s, substring)(2, 6) == "llo ")
+}