Handle type mismatch on bit and register __eq__#5450
Merged
mergify[bot] merged 1 commit intoNov 30, 2020
Conversation
In Qiskit#5272 the __eq__ method was changed to use a single string comparison away from a nested attribute comparison for performance reasons. This had the unexpected side effect that when comparing a register or a bit object against an object of another type an AttributeError would be raised because the private _repr attribute doesn't exist outside of those classes. This leads to unexpected failures when running with aqua because they were comparing a register to a string. This commit addresses this by catching the attribute error and returning false because objects of different types are not equal.
kdk
approved these changes
Nov 30, 2020
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
In #5272 the
__eq__method was changed to use a single string comparisonaway from a nested attribute comparison for performance reasons. This
had the unexpected side effect that when comparing a register or a bit
object against an object of another type an
AttributeErrorwould beraised because the private
_reprattribute doesn't exist outside ofthose classes. This leads to unexpected failures when running with aqua
because they were comparing a register to a string. This commit
addresses this by catching the attribute error and returning false
because objects of different types are not equal.
Details and comments