summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2010-01-12 17:17:50 +0000
committerMartin Odersky <odersky@gmail.com>2010-01-12 17:17:50 +0000
commit2664de4710f64a5e0fb753ad7b23987d46625c63 (patch)
tree4432f781cc1e101170ea60a16c53318d3c1c8d68 /src
parentd75264a14a560e1655c59dcfa1152882f2bad807 (diff)
downloadscala-2664de4710f64a5e0fb753ad7b23987d46625c63.tar.gz
scala-2664de4710f64a5e0fb753ad7b23987d46625c63.tar.bz2
scala-2664de4710f64a5e0fb753ad7b23987d46625c63.zip
Closes #2867. review by extempore.
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/SyntheticMethods.scala11
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