From 870885fadc0156001bd3293ef6f08d1ca50e36f9 Mon Sep 17 00:00:00 2001 From: liu fengyun Date: Fri, 6 Apr 2018 16:16:38 +0200 Subject: [PATCH 1/3] Fix #4217: display warnings in repl --- compiler/src/dotty/tools/repl/ReplDriver.scala | 3 +++ 1 file changed, 3 insertions(+) diff --git a/compiler/src/dotty/tools/repl/ReplDriver.scala b/compiler/src/dotty/tools/repl/ReplDriver.scala index 1b12fe3ff2bc..4e5d47c51f17 100644 --- a/compiler/src/dotty/tools/repl/ReplDriver.scala +++ b/compiler/src/dotty/tools/repl/ReplDriver.scala @@ -235,6 +235,9 @@ class ReplDriver(settings: Array[String], val newImports = newState.imports ++ extractImports(parsed.trees) val newStateWithImports = newState.copy(imports = newImports) + implicit val ctx: Context = newState.run.runContext + displayErrors(newState.run.runContext.flushBufferedMessages()) + displayDefinitions(unit.tpdTree, newestWrapper)(newStateWithImports) } } From a393a08845a6dc4af82b94bb6a057a7968b698bb Mon Sep 17 00:00:00 2001 From: liu fengyun Date: Fri, 6 Apr 2018 16:22:26 +0200 Subject: [PATCH 2/3] add test case --- compiler/test-resources/repl/i4217 | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 compiler/test-resources/repl/i4217 diff --git a/compiler/test-resources/repl/i4217 b/compiler/test-resources/repl/i4217 new file mode 100644 index 000000000000..22964adaf6a7 --- /dev/null +++ b/compiler/test-resources/repl/i4217 @@ -0,0 +1,7 @@ +scala> def foo(x: Option[Int]) = x match { case None => } +1 | def foo(x: Option[Int]) = x match { case None => } + | ^ + | match may not be exhaustive. + | + | It would fail on pattern case: Some(_) +def foo(x: Option[Int]): Unit \ No newline at end of file From d774cef9cca97141989ab75f9de7d681d302e53e Mon Sep 17 00:00:00 2001 From: liu fengyun Date: Fri, 6 Apr 2018 17:57:43 +0200 Subject: [PATCH 3/3] address review --- compiler/src/dotty/tools/repl/ReplDriver.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/compiler/src/dotty/tools/repl/ReplDriver.scala b/compiler/src/dotty/tools/repl/ReplDriver.scala index 4e5d47c51f17..fb602c1bbb67 100644 --- a/compiler/src/dotty/tools/repl/ReplDriver.scala +++ b/compiler/src/dotty/tools/repl/ReplDriver.scala @@ -235,8 +235,8 @@ class ReplDriver(settings: Array[String], val newImports = newState.imports ++ extractImports(parsed.trees) val newStateWithImports = newState.copy(imports = newImports) - implicit val ctx: Context = newState.run.runContext - displayErrors(newState.run.runContext.flushBufferedMessages()) + // display warnings + displayErrors(newState.run.runContext.flushBufferedMessages())(newState) displayDefinitions(unit.tpdTree, newestWrapper)(newStateWithImports) }