Merge pull request #8109 from harpocrates/bsp-compile-status-code

fix: BSP error status code in more cases
This commit is contained in:
eugene yokota 2025-05-07 08:01:16 -07:00 committed by GitHub
commit 25b30ff36e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 12 additions and 4 deletions

View File

@ -789,11 +789,19 @@ object BuildServerProtocol {
Keys.compile.result.value match {
case Value(_) => StatusCode.Success
case Inc(cause) =>
cause.getCause match {
case _: CompileFailed => StatusCode.Error
case _: InterruptedException => StatusCode.Cancelled
case err => throw cause
var statusCodeOpt: Option[Int]
def updateCode(code: Int): Unit =
statusCodeOpt = Some(statusCodeOpt match {
case None => code
case Some(oldCode) => oldCode.max(code)
})
Incomplete.visitAll(cause.getCause) {
case _: CompileFailed => updateCode(StatusCode.Error)
case _: InterruptedException => updateCode(StatusCode.Cancelled)
}
statusCodeOpt.getOrElse(throw cause)
}
}