summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/compiler/scala/tools/nsc/Interpreter.scala3
-rw-r--r--test/files/run/interpreter.check9
-rw-r--r--test/files/run/interpreter.scala6
3 files changed, 17 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/Interpreter.scala b/src/compiler/scala/tools/nsc/Interpreter.scala
index 99606e856f..09b8c6f068 100644
--- a/src/compiler/scala/tools/nsc/Interpreter.scala
+++ b/src/compiler/scala/tools/nsc/Interpreter.scala
@@ -627,7 +627,8 @@ class Interpreter(val settings: Settings, out: PrintWriter) {
".asInstanceOf[AnyRef] != null) " +
" { val tmp = " +
req.fullPath(vname) +
- ".toString(); " +
+ // Cast to Any to avoid ambiguity in choice of toString
+ ".asInstanceOf[Any].toString(); " +
" (if(tmp.contains('\\n')) \"\\n\" else \"\") + tmp + \"\\n\"} else \"null\\n\") ")
}
}
diff --git a/test/files/run/interpreter.check b/test/files/run/interpreter.check
index ef8de4dc97..64eeca14ba 100644
--- a/test/files/run/interpreter.check
+++ b/test/files/run/interpreter.check
@@ -34,6 +34,15 @@ scala> hello
scala>
scala>
+scala> atom: scala.xml.Atom[Unit] = ()
+
+scala>
+scala> defined class S
+
+scala> fish: S = fish
+
+scala>
+scala>
scala> defined class Foo
scala> defined class Bar
diff --git a/test/files/run/interpreter.scala b/test/files/run/interpreter.scala
index 13abc565f7..1ebe72ed2a 100644
--- a/test/files/run/interpreter.scala
+++ b/test/files/run/interpreter.scala
@@ -22,6 +22,12 @@ trait PointlessTrait
val (x,y) = (2,3)
println("hello")
+// ambiguous toString problem from #547
+val atom = new scala.xml.Atom()
+// overriding toString problem from #1404
+class S(override val toString : String)
+val fish = new S("fish")
+
// implicit conversions
case class Foo(n: Int)
case class Bar(n: Int)