When there is a .zo version mismatch error in an imported module (presumably caused by upgrading Racket), the language server does not report anything because the source locations (prop:exn:srclocs) in the raised exception is empty.
This PR specifically looks for errors that look like version mismatches and reports the error message from the exception. For example, consider this piece of code.
When there is a
.zo
version mismatch error in an imported module (presumably caused by upgrading Racket), the language server does not report anything because the source locations (prop:exn:srclocs
) in the raised exception is empty.This PR specifically looks for errors that look like version mismatches and reports the error message from the exception. For example, consider this piece of code.
Assume that the
.zo
files oflib
is out-of-date. This PR reports the following error message and the suggestions to runraco setup
:If, to the contrary,
"local-lib.rkt"
rather thanlib
is out-of-date, this PR produces a different suggestion: