scala coalesces multiple function call parameters into a Tuple -- can this be disabled?
        Posted  
        
            by landon9720
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by landon9720
        
        
        
        Published on 2010-05-17T16:35:20Z
        Indexed on 
            2010/05/17
            16:40 UTC
        
        
        Read the original article
        Hit count: 202
        
scala
This is a troublesome violation of type safety in my project, so I'm looking for a way to disable it. It seems that if a function takes an AnyRef (or a java.lang.Object), you can call the function with any combination of parameters, and Scala will coalesce the parameters into a Tuple object and invoke the function.
In my case the function isn't expecting a Tuple, and fails at runtime. I would expect this situation to be caught at compile time.
object WhyTuple {
 def main(args: Array[String]): Unit = {
  fooIt("foo", "bar")
 }
 def fooIt(o: AnyRef) {
  println(o.toString)
 }
}
Output:
(foo,bar)
© Stack Overflow or respective owner