title: Why is x.toString different from (x: Any).toString
body: <p>Following on from <a href="https://stackoverflow.com/q/23660990/463761">How is ScalaRunTime.stringOf(x) not failing when x.toString fails?</a>, how is</p>
  
  <pre><code>x.toString
  </code></pre>
  
  <p>different from</p>
  
  <pre><code>(x: Any).toString
  </code></pre>
  
  <p>Also, how about</p>
  
  <pre><code>"" + x
  </code></pre>
  
  <p>Example REPL session:</p>
  
  <pre><code>&gt; scala -cp joda-time-2.3.jar
  Welcome to Scala version 2.11.0 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_05).
  Type in expressions to have them evaluated.
  Type :help for more information.
  
  scala&gt; val dt = new org.joda.time.DateTime
  warning: Class org.joda.convert.FromString not found - continuing with a stub.
  warning: Class org.joda.convert.ToString not found - continuing with a stub.
  warning: Class org.joda.convert.FromString not found - continuing with a stub.
  warning: Class org.joda.convert.ToString not found - continuing with a stub.
  dt: org.joda.time.DateTime = 2014-05-15T09:27:17.929+01:00
  
  scala&gt; (dt: Any).toString
  res0: String = 2014-05-15T09:27:17.929+01:00
  
  scala&gt; "" + dt
  res1: String = 2014-05-15T09:27:17.929+01:00
  
  scala&gt; dt.toString
  java.lang.AssertionError: assertion failed: org.joda.convert.ToString
  at scala.reflect.internal.Symbols$Symbol.info(Symbols.scala:1410)
  at scala.reflect.internal.Symbols$TypeSymbol.isNonBottomSubClass(Symbols.scala:3040)
  at scala.reflect.internal.AnnotationInfos$AnnotationInfo.matches(AnnotationInfos.scala:305)
  at scala.reflect.internal.AnnotationInfos$Annotatable$class.dropOtherAnnotations(AnnotationInfos.scala:68)
  at scala.reflect.internal.AnnotationInfos$Annotatable$class.hasAnnotation(AnnotationInfos.scala:53)
  at scala.reflect.internal.Symbols$Symbol.hasAnnotation(Symbols.scala:174)
  at scala.tools.nsc.typechecker.Infer$class.improves$1(Infer.scala:61)
  at scala.tools.nsc.typechecker.Infer$$anonfun$4.apply(Infer.scala:65)
  at scala.tools.nsc.typechecker.Infer$$anonfun$4.apply(Infer.scala:65)
  </code></pre>