Skip extra property when comparing LocatedSpanEx #46
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.
LocatedSpanEx
includes anextra
property that is designed for "extra information that can be embedded by the user".Since
PartialEq
is derived onLocatedSpanEx
, checking equality on two spans involves checking equality on theextra
property. This is undesirable as, by definition, the extra information is separate from the input so should not be compared when determining if two input spans are the same.I have come across this issue as there are several nom combinators which require comparing two inputs, for instance
many1
. Currently, the only workaround is wrapping the extra information in a trivialstruct
which always returnstrue
when compared.I resolve this by instead providing a custom
PartialEq
implementation forLocatedSpanEx
. Whilst doing this, I also fixed a typo within the docs for theextra
property and implementedEq
(equivalence relation) onLocatedSpanEx
where the genericT
allows for this. 馃槃I hope this helps, let me know if there are any questions or suggestions!