diff options
author | Josh Suereth <Joshua.Suereth@gmail.com> | 2012-11-14 02:46:03 -0800 |
---|---|---|
committer | Josh Suereth <Joshua.Suereth@gmail.com> | 2012-11-14 02:46:03 -0800 |
commit | 49de2226c282285d099ac5903fe10b07e3087b5d (patch) | |
tree | 91017e291ecb1bb42085af953dc9197445b4dcfb | |
parent | a1710cde2842b1a6e5c473a12ea392eeffe8bcee (diff) | |
parent | 1e0a30a744e6853b1e69928a63b327226f4bf27f (diff) | |
download | scala-49de2226c282285d099ac5903fe10b07e3087b5d.tar.gz scala-49de2226c282285d099ac5903fe10b07e3087b5d.tar.bz2 scala-49de2226c282285d099ac5903fe10b07e3087b5d.zip |
Merge pull request #1608 from retronym/ticket/6644
SI-6644 Account for varargs in extmethod forwarder
-rw-r--r-- | src/compiler/scala/tools/nsc/transform/ExtensionMethods.scala | 4 | ||||
-rw-r--r-- | test/files/run/t6644.scala | 8 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/ExtensionMethods.scala b/src/compiler/scala/tools/nsc/transform/ExtensionMethods.scala index 6cc957a9eb..6f3d7932a5 100644 --- a/src/compiler/scala/tools/nsc/transform/ExtensionMethods.scala +++ b/src/compiler/scala/tools/nsc/transform/ExtensionMethods.scala @@ -173,9 +173,7 @@ abstract class ExtensionMethods extends Transform with TypingTransformers { List(This(currentOwner))) val extensionCall = atOwner(origMeth) { localTyper.typedPos(rhs.pos) { - (extensionCallPrefix /: vparamss) { - case (fn, params) => Apply(fn, params map (param => Ident(param.symbol))) - } + gen.mkForwarder(extensionCallPrefix, mmap(vparamss)(_.symbol)) } } deriveDefDef(tree)(_ => extensionCall) diff --git a/test/files/run/t6644.scala b/test/files/run/t6644.scala new file mode 100644 index 0000000000..b8b36f957c --- /dev/null +++ b/test/files/run/t6644.scala @@ -0,0 +1,8 @@ +class Testable(val c: String) extends AnyVal { + def matching(cases: Boolean*) = cases contains true +} + +object Test extends App { + assert(new Testable("").matching(true, false)) +} + |