summaryrefslogtreecommitdiff
path: root/src/reflect/scala/reflect/runtime/JavaMirrors.scala
diff options
context:
space:
mode:
authorSom Snytt <som.snytt@gmail.com>2015-03-10 23:54:39 -0700
committerSom Snytt <som.snytt@gmail.com>2015-03-11 00:19:00 -0700
commitd7b99c3c33de8d759353c7ffd1d89e2cb38d793b (patch)
tree3e7312959bf6775e767e00fec2680c26e0561766 /src/reflect/scala/reflect/runtime/JavaMirrors.scala
parente8e9c0d6b9181be657a1d28eef9f999cb26df9e5 (diff)
downloadscala-d7b99c3c33de8d759353c7ffd1d89e2cb38d793b.tar.gz
scala-d7b99c3c33de8d759353c7ffd1d89e2cb38d793b.tar.bz2
scala-d7b99c3c33de8d759353c7ffd1d89e2cb38d793b.zip
SI-9102: Reflect method invoke with mixed args
A missing default branch when a method had value class or by-name params caused other args to present as null under reflective invocation.
Diffstat (limited to 'src/reflect/scala/reflect/runtime/JavaMirrors.scala')
-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..7d72833d64 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)
+ else arg
+ )
i += 1
}
jinvoke(args1)