Skip to content

Commit d5e84f4

Browse files
committed
Fix #9538: doc of empty expression
1 parent 439f8f2 commit d5e84f4

File tree

3 files changed

+17
-4
lines changed

3 files changed

+17
-4
lines changed

compiler/src/dotty/tools/repl/ReplDriver.scala

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -387,10 +387,14 @@ class ReplDriver(settings: Array[String],
387387
state
388388

389389
case DocOf(expr) =>
390-
compiler.docOf(expr)(newRun(state)).fold(
391-
displayErrors,
392-
res => out.println(res)
393-
)
390+
expr match {
391+
case "" => out.println(s":doc <expression>.")
392+
case _ =>
393+
compiler.docOf(expr)(newRun(state)).fold(
394+
displayErrors,
395+
res => out.println(res)
396+
)
397+
}
394398
state
395399

396400
case Quit =>

compiler/test-resources/repl/i9538

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
scala>:type
22
:type <expression>.
3+
4+
scala>:doc
5+
:doc <expression>.

compiler/test/dotty/tools/repl/DocTests.scala

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,12 @@ class DocTests extends ReplTest {
177177
assertEquals("Expansion: some-value", doc("Foo.hello"))
178178
}
179179

180+
@Test def docOfEmpty =
181+
fromInitialState { implicit s =>
182+
run(":doc")
183+
assertEquals(":doc <expression>.", storedOutput().trim)
184+
}
185+
180186
private def eval(code: String): State =
181187
fromInitialState { implicit s => run(code) }
182188

0 commit comments

Comments
 (0)