Aladdin - Scala Bugtracking
[#658] project: specification priority: low category: missing feature
submitter assigned to status date submitted
Burak Martin won't fix 2006-07-14 18:22:14.0
subject overriding and RepeatedParam
code
abstract class No {
  def bar: Seq[String] = null
  def foo(s:Seq[String]) = {} 
}

class Qux extends No {
  override def foo(s:String*) = {} 
  override def bar = null
}

case class Yg(override val bar:String*) extends No; // this works, however
what happened
overriding Seq[T] with T* is inconsistent.
what expected overriding to work fine. This would mean that the following code passes:
val x = new Qux()
val y:No = x
x.foo("1","2","3") // am calling String* methods 
y.foo(List("1","2","3")) // have to call Seq[String] method
The real use-case is to override a getter/setter pair "def x, def x_=(value:Seq[T])" of Seq[T] with "override var x:T*" which is currently not possible.
[back to overview]
Changes of this bug report
Burak  edited on  2006-07-14 18:25:13.0
small typo in "real use-case"
Martin  edited on  2006-08-20 18:41:26.0
changed to a spec missing feature
Martin  edited on  2006-12-06 15:47:14.0
Thinking about is, I believe this would open an unnecessarily big can of worms. Also the use case will not work anyway, since T* is not allowed as a type of a var.