fix: Ensure empty sources have one "line" #219
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
rustc
will occasionally give us aSnippet
with an empty source and anAnnotation
with the span0..0
, which causesannotate-snippets
to panic. The root cause of the panic is that a few places inSourceMap
expect at least oneLineInfo
, when none are created for an empty source. To fix this, I made it so when we are given an empty source, we add a single "empty"LineInfo
, with the appropriateline_index
.When looking into how to fix this, I noticed that
rustc
doesn't show the annotation even though there is one that could be displayed. Because of this, I felt it was best to diverge from howrustc
would render this and show the annotation (and the correct line).Original Test
Proposed
Note: I will try to backport this change to
rustc
so that this is only a temporary divergence in output.