fix .line
pragma ignoring column information
#860
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.
Summary
Use the column information provided by the tuple value, which fixes,
for example, stack traces produced by assertion failures in compile-time
contexts pointing to the wrong column.
In addition, the tuple passed to the
.line
pragma is now verified tohave the correct number of elements, which fixes the compiler crashing
when it's a tuple with less than the expected number of elements.
Details
In
pragmaLine
:nkPar
-- all literal tuple construction expressions haveto use
nkTupleConstr
nodesx
andy
integer value) as the column information
TLineInfo
withnewLineInfo
, which also makes surethat out-of-range line and column numbers are properly handled (by
clamping them)
wrapError
forproper propagation
In addition, the error message for when the provided tuple value doesn't
have the correct shape is slightly improved, now detailing how the
tuple is required to look like.
A test (
t9768.nim
) that relied on incorrect column being set isadjusted.