diff --git a/compiler/src/dotty/tools/repl/ReplDriver.scala b/compiler/src/dotty/tools/repl/ReplDriver.scala index a83536fb03f6..97865fc63eb0 100644 --- a/compiler/src/dotty/tools/repl/ReplDriver.scala +++ b/compiler/src/dotty/tools/repl/ReplDriver.scala @@ -376,17 +376,25 @@ class ReplDriver(settings: Array[String], } case TypeOf(expr) => - compiler.typeOf(expr)(newRun(state)).fold( - displayErrors, - res => out.println(SyntaxHighlighting.highlight(res)(using state.context)) - ) + expr match { + case "" => out.println(s":type ") + case _ => + compiler.typeOf(expr)(newRun(state)).fold( + displayErrors, + res => out.println(SyntaxHighlighting.highlight(res)(using state.context)) + ) + } state case DocOf(expr) => - compiler.docOf(expr)(newRun(state)).fold( - displayErrors, - res => out.println(res) - ) + expr match { + case "" => out.println(s":doc ") + case _ => + compiler.docOf(expr)(newRun(state)).fold( + displayErrors, + res => out.println(res) + ) + } state case Quit => diff --git a/compiler/test-resources/repl/i9538 b/compiler/test-resources/repl/i9538 new file mode 100644 index 000000000000..6a9bdacf0baf --- /dev/null +++ b/compiler/test-resources/repl/i9538 @@ -0,0 +1,5 @@ +scala>:type +:type + +scala>:doc +:doc diff --git a/compiler/test/dotty/tools/repl/DocTests.scala b/compiler/test/dotty/tools/repl/DocTests.scala index 2fb53f53fa5d..0cdf886a1bbc 100644 --- a/compiler/test/dotty/tools/repl/DocTests.scala +++ b/compiler/test/dotty/tools/repl/DocTests.scala @@ -177,6 +177,12 @@ class DocTests extends ReplTest { assertEquals("Expansion: some-value", doc("Foo.hello")) } + @Test def docOfEmpty = + fromInitialState { implicit s => + run(":doc") + assertEquals(":doc ", storedOutput().trim) + } + private def eval(code: String): State = fromInitialState { implicit s => run(code) } diff --git a/compiler/test/dotty/tools/repl/TypeTests.scala b/compiler/test/dotty/tools/repl/TypeTests.scala index cd15ddd34dee..abc66ba2c0ab 100644 --- a/compiler/test/dotty/tools/repl/TypeTests.scala +++ b/compiler/test/dotty/tools/repl/TypeTests.scala @@ -21,4 +21,9 @@ class TypeTests extends ReplTest { run(":type x") assertEquals("Int", storedOutput().trim) } + + @Test def typeOfEmpty = fromInitialState { implicit s => + run(":type") + assertEquals(":type ", storedOutput().trim) + } }