diff --git a/library/src/dotty/Show.scala b/library/src/dotty/Show.scala index 42f7953cd528..536c44a3e99c 100644 --- a/library/src/dotty/Show.scala +++ b/library/src/dotty/Show.scala @@ -58,6 +58,12 @@ object Show extends LowPrioShow { else "List(" + xs.map(_.show).mkString(", ") + ")" } + implicit def arrayShow[T](implicit st: Show[T]): Show[Array[T]] = new Show[Array[T]] { + def show(xs: Array[T]): String = + if (xs.isEmpty) "Array()" + else "Array(" + xs.map(_.show).mkString(", ") + ")" + } + implicit def showOption[T](implicit st: Show[T]): Show[Option[T]] = new Show[Option[T]] { def show(ot: Option[T]): String = ot match { case Some(t) => "Some("+ st.show(t) + ")" diff --git a/library/test/dotty/ShowTests.scala b/library/test/dotty/ShowTests.scala index b7f41b2866a0..28937ca8d874 100644 --- a/library/test/dotty/ShowTests.scala +++ b/library/test/dotty/ShowTests.scala @@ -73,4 +73,10 @@ class ShowTests { case object Foo assertEquals("Map(Foo -> \"Hello\")", Map(Foo -> "Hello").show) } + + @Test def showArrays = { + assertEquals("Array()", Array[Int]().show) + assertEquals("Array(1)", Array(1).show) + assertEquals("Array(1, 2, 3)", Array(1, 2, 3).show) + } }