Scala: Contém em conjuntos mutáveis e imutáveis

escobri um comportamento estranho para conjuntos mutáveis que não consigo entende

Tenho um objeto que quero adicionar a um conjunto. O método equals para a classe é substituído. Quando adiciono dois objetos diferentes ao conjunto, que produz a mesma saída para o método equals, recebo um comportamento diferente entre conjuntos mutáveis e imutáveis para o método contain

Aqui está o trecho de código:

class Test(text:String){
  override def equals(obj:Any) = obj match {
    case t: Test => if (t.text == this.text) true else false
    case _ => false
  }
  override def toString = text
}

val mutableSet:scala.collection.mutable.Set[Test] = scala.collection.mutable.Set.empty
mutableSet += new Test("test")
println(mutableSet)
println(mutableSet.contains(new Test("test")))

val immutableSet:scala.collection.immutable.Set[Test] = scala.collection.immutable.Set.empty
immutableSet += new Test("test")
println(immutableSet)
println(immutableSet.contains(new Test("test")))

Isso produz como saída:

Set(test)
false
Set(test)
true

Na minha opinião, ambas as chamadas de contains devem produzir a mesma saída (true

Alguém poderia me ajudar a entender a diferença aqui ou isso é um bug na implementação do conjunto imutável do scala? A propósito, eu uso o scala 2.8.1.final

Obrigado

questionAnswers(2)

yourAnswerToTheQuestion