summaryrefslogtreecommitdiff
path: root/Source/Core/AbsyCmd.cs
diff options
context:
space:
mode:
authorGravatar wuestholz <unknown>2015-01-09 15:43:46 +0100
committerGravatar wuestholz <unknown>2015-01-09 15:43:46 +0100
commitfb2b56ff6734b210315f1bb31f27552d0b0ebaa4 (patch)
treed00032d2d777267d34fc2c3f7d053a5f40d29f89 /Source/Core/AbsyCmd.cs
parent8ed9f3c7b264beb88584f9e84012ac1a75ac0603 (diff)
Made invariant of class 'EEDTemplate' robust by:
- making field private - exposing an IEnumerable - copying incoming list (with help from David Rohr)
Diffstat (limited to 'Source/Core/AbsyCmd.cs')
-rw-r--r--Source/Core/AbsyCmd.cs18
1 files changed, 16 insertions, 2 deletions
diff --git a/Source/Core/AbsyCmd.cs b/Source/Core/AbsyCmd.cs
index 7a47a743..89a3d1d1 100644
--- a/Source/Core/AbsyCmd.cs
+++ b/Source/Core/AbsyCmd.cs
@@ -2756,11 +2756,25 @@ namespace Microsoft.Boogie {
public class EEDTemplate : MiningStrategy {
public string/*!*/ reason;
- public List<Expr/*!*/>/*!*/ exprList;
+ private List<Expr/*!*/>/*!*/ exprList;
+ public IEnumerable<Expr> Expressions
+ {
+ get
+ {
+ Contract.Ensures(cce.NonNullElements(Contract.Result<IEnumerable<Expr>>()));
+ return this.exprList.AsReadOnly();
+ }
+ set
+ {
+ Contract.Requires(cce.NonNullElements(value));
+ this.exprList = new List<Expr>(value);
+ }
+ }
+
[ContractInvariantMethod]
void ObjectInvariant() {
Contract.Invariant(reason != null);
- Contract.Invariant(cce.NonNullElements(exprList));
+ Contract.Invariant(cce.NonNullElements(this.exprList));
}