diff options
author | Martin Odersky <odersky@gmail.com> | 2010-01-12 17:17:50 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2010-01-12 17:17:50 +0000 |
commit | 2664de4710f64a5e0fb753ad7b23987d46625c63 (patch) | |
tree | 4432f781cc1e101170ea60a16c53318d3c1c8d68 | |
parent | d75264a14a560e1655c59dcfa1152882f2bad807 (diff) | |
download | scala-2664de4710f64a5e0fb753ad7b23987d46625c63.tar.gz scala-2664de4710f64a5e0fb753ad7b23987d46625c63.tar.bz2 scala-2664de4710f64a5e0fb753ad7b23987d46625c63.zip |
Closes #2867. review by extempore.
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/SyntheticMethods.scala | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/SyntheticMethods.scala b/src/compiler/scala/tools/nsc/typechecker/SyntheticMethods.scala index 676279a8d2..9ae56f05a3 100644 --- a/src/compiler/scala/tools/nsc/typechecker/SyntheticMethods.scala +++ b/src/compiler/scala/tools/nsc/typechecker/SyntheticMethods.scala @@ -175,10 +175,13 @@ trait SyntheticMethods extends ast.TreeDSL { def makeTrees(acc: Symbol, cpt: Type): (Tree, Bind) = { val varName = context.unit.fresh.newName(clazz.pos.focus, acc.name + "$") val (eqMethod, binding) = - if (isRepeatedParamType(cpt)) (nme.sameElements, Star(WILD())) - else (nme.EQ , WILD() ) - - ((varName DOT eqMethod)(Ident(acc)), varName BIND binding) + if (isRepeatedParamType(cpt)) + (TypeApply(varName DOT nme.sameElements, List(TypeTree(cpt.baseType(SeqClass).typeArgs.head))), + Star(WILD())) + else + ((varName DOT nme.EQ): Tree, + WILD()) + (eqMethod APPLY Ident(acc), varName BIND binding) } // Creates list of parameters and a guard for each |