Make source_location()
and SourceFile's and line_starts
consistent when the last source byte is a newline
#552
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.
When constructing SourceFile's
line_starts
, we currently pretend there's anewline at the end of the source if there isn't one, and then ignore the last
newline unconditionally. This became a problem in LSP testing, where calling
source_location
with a cursor position at the end of the file would give awrong result only if the last character was a newline.
This change removes the conditional line and the code stripping it. This also
brings
line_starts
closer to its definition (one entry per line in the file).Alternatively, we could add the dummy line unconditionally. It would make for
calculating the length of the last real line easier, but would make
line_starts
less explainable.