From f0efbf0f5d4093ca4baf19a690630a58be1bce44 Mon Sep 17 00:00:00 2001 From: Adrien Piquerez Date: Thu, 24 Jun 2021 16:27:37 +0200 Subject: [PATCH] Make BSP compile fail after random exception --- .../sbt/internal/server/BuildServerProtocol.scala | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/main/src/main/scala/sbt/internal/server/BuildServerProtocol.scala b/main/src/main/scala/sbt/internal/server/BuildServerProtocol.scala index 8f4f6164b..5a00d6bac 100644 --- a/main/src/main/scala/sbt/internal/server/BuildServerProtocol.scala +++ b/main/src/main/scala/sbt/internal/server/BuildServerProtocol.scala @@ -10,7 +10,6 @@ package internal package server import java.net.URI - import sbt.BuildSyntax._ import sbt.Def._ import sbt.Keys._ @@ -28,6 +27,7 @@ import sbt.std.TaskExtra import sbt.util.Logger import sjsonnew.shaded.scalajson.ast.unsafe.{ JNull, JValue } import sjsonnew.support.scalajson.unsafe.{ CompactPrinter, Converter, Parser => JsonParser } +import xsbti.CompileFailed // import scala.annotation.nowarn import scala.util.control.NonFatal @@ -507,9 +507,11 @@ object BuildServerProtocol { private def bspCompileTask: Def.Initialize[Task[Int]] = Def.task { Keys.compile.result.value match { case Value(_) => StatusCode.Success - case Inc(_) => - // Cancellation is not yet implemented - StatusCode.Error + case Inc(cause) => + cause.getCause match { + case _: CompileFailed => StatusCode.Error + case err => throw cause + } } }