Add type restriction and conversion to YAML::PullParser#location
#10997
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.
YAML::PullParser
location numbers areInt
because ofSizeT
inLibYAML::Mark
properties. This patch casts the return types toInt32
. This is technically a breaking change, because it was previouslyUInt64
on 64-bit systems andUInt32
on 32-bit.Most methods already had a type restriction of
Int
. Narrowing that toInt32
should technically be fine, but it can still break code expecting the return value to be someUInt
(because the compiler does not use the type restriction for determining the return type, it just makes sure the actual return type fulfills the restriction).#location
itself had no prior type restriction at all and returned{LibC::SizeT, LibC::SizeT}
. Changing that to{Int32, Int32}
is a pretty hard change. I wouldn't expect much collateral from changing it though.Question is if we can accept this as a necessary bug fix for a minor release.
See #10645 (comment)