When I invoke + on 2 I get an Int back, but when its done using explicit method call I get Double instead.
scala> 2+2 res1: Int = 4 scala> 2.+(2) res2: Double = 4.0 It seems that .+() is invoked on implicit converted Int to Double.
scala> 2.+ <console>:16: error: ambiguous reference to overloaded definition, both method + in class Double of type (x: Char)Double and method + in class Double of type (x: Short)Double match expected type ? 2.+ ^ Why is that so ?