diff options
author | 2014-07-28 16:32:51 +0100 | |
---|---|---|
committer | 2014-07-28 16:32:51 +0100 | |
commit | cbabeb3fdef4f1ad2aed7f32ba375ad4fdd6c298 (patch) | |
tree | ce6c80d6383113446e8bb44bd10fa02e0b7fbcb5 /Source | |
parent | 5c5ece158229ad33f36afed8af3b5e47d99987f1 (diff) |
Fix bug in NAryExpr where Equals() override was not correctly implemented.
The previous implementation which called object.Equals(this.Args, other.Args)
would in turn call ``this.Args.Equals(others.Args)`` which for List<> is
reference equality. Equals() is purposely overloaded on Expr classes in Boogie
to provide structural equality so this has been fixed so a comparision of
elements in the list is performed.
Diffstat (limited to 'Source')
-rw-r--r-- | Source/Core/AbsyExpr.cs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/Source/Core/AbsyExpr.cs b/Source/Core/AbsyExpr.cs index bc603ea5..0a7bfa33 100644 --- a/Source/Core/AbsyExpr.cs +++ b/Source/Core/AbsyExpr.cs @@ -2110,7 +2110,7 @@ namespace Microsoft.Boogie { return false;
NAryExpr other = (NAryExpr)obj;
- return object.Equals(this.Fun, other.Fun) && object.Equals(this.Args, other.Args);
+ return object.Equals(this.Fun, other.Fun) && this.Args.SequenceEqual(other.Args);
}
[Pure]
public override int GetHashCode() {
|