summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2015-03-24 13:11:07 +1000
committerJason Zaugg <jzaugg@gmail.com>2015-03-24 13:11:07 +1000
commitfcc20fe4d3ac5caceb50965bc202b880e61f984c (patch)
tree7c56c380fecc56fe82477e6438434fe444805aee /src
parent7741d3f0a37bb673462863ba389c27ce6eccaccf (diff)
parent0a8dfd927e6362656b541360cf6920c2c7c69b08 (diff)
downloadscala-fcc20fe4d3ac5caceb50965bc202b880e61f984c.tar.gz
scala-fcc20fe4d3ac5caceb50965bc202b880e61f984c.tar.bz2
scala-fcc20fe4d3ac5caceb50965bc202b880e61f984c.zip
Merge pull request #4378 from som-snytt/issue/9102
SI-9102: Reflect method invoke with mixed args
Diffstat (limited to 'src')
-rw-r--r--src/reflect/scala/reflect/runtime/JavaMirrors.scala9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/reflect/scala/reflect/runtime/JavaMirrors.scala b/src/reflect/scala/reflect/runtime/JavaMirrors.scala
index 1c751fb93b..3b497227e7 100644
--- a/src/reflect/scala/reflect/runtime/JavaMirrors.scala
+++ b/src/reflect/scala/reflect/runtime/JavaMirrors.scala
@@ -428,9 +428,12 @@ private[scala] trait JavaMirrors extends internal.SymbolTable with api.JavaUnive
var i = 0
while (i < args1.length) {
val arg = args(i)
- if (i >= paramCount) args1(i) = arg // don't transform varargs
- else if (isByName(i)) args1(i) = () => arg // don't transform by-name value class params
- else if (isDerivedValueClass(i)) args1(i) = paramUnboxers(i).invoke(arg)
+ args1(i) = (
+ if (i >= paramCount) arg // don't transform varargs
+ else if (isByName(i)) () => arg // don't transform by-name value class params
+ else if (isDerivedValueClass(i)) paramUnboxers(i).invoke(arg) // do get the underlying value
+ else arg // don't molest anything else
+ )
i += 1
}
jinvoke(args1)