Skip to content

Commit

Permalink
Fix error handling in LSP to guard against empty results from the com…
Browse files Browse the repository at this point in the history
…piler. (#6480)

## Description
Fixes the crashes that we were seeing in CI. We now return an error if
the last results is empty so we don't index oob when accessing the
Engines during traversal or when creating runnables.

closes #6458

## Checklist

- [x] I have linked to any relevant issues.
- [x] I have commented my code, particularly in hard-to-understand
areas.
- [x] I have updated the documentation where relevant (API docs, the
reference, and the Sway book).
- [ ] If my change requires substantial documentation changes, I have
[requested support from the DevRel
team](https://github.com/FuelLabs/devrel-requests/issues/new/choose)
- [x] I have added tests that prove my fix is effective or that my
feature works.
- [x] I have added (or requested a maintainer to add) the necessary
`Breaking*` or `New Feature` labels where relevant.
- [x] I have done my best to ensure that my PR adheres to [the Fuel Labs
Code Review
Standards](https://github.com/FuelLabs/rfcs/blob/master/text/code-standards/external-contributors.md).
- [x] I have requested a review from the relevant team or maintainers.
  • Loading branch information
JoshuaBatty authored Aug 29, 2024
1 parent 40efa46 commit 2b0376b
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion sway-lsp/src/core/session.rs
Original file line number Diff line number Diff line change
Expand Up @@ -409,7 +409,11 @@ pub fn parse_project(
lsp_mode.clone(),
experimental,
)?;
if results.last().is_none() {

// Check if the last result is None or if results is empty, indicating an error occurred in the compiler.
// If we don't return an error here, then we will likely crash when trying to access the Engines
// during traversal or when creating runnables.
if results.last().map_or(true, |(value, _)| value.is_none()) {
return Err(LanguageServerError::ProgramsIsNone);
}

Expand Down

0 comments on commit 2b0376b

Please # to comment.