summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/AbsyType.cs20
1 files changed, 14 insertions, 6 deletions
diff --git a/Source/Core/AbsyType.cs b/Source/Core/AbsyType.cs
index 5274a20b..4efe1aea 100644
--- a/Source/Core/AbsyType.cs
+++ b/Source/Core/AbsyType.cs
@@ -2950,9 +2950,13 @@ Contract.Requires(that != null);
if (subst.Count == 0)
return this;
List<Type> newArgs = new List<Type>();
- foreach (Type/*!*/ t in Arguments) {
- Contract.Assert(t != null);
- newArgs.Add(t.Substitute(subst));
+ lock (Arguments)
+ {
+ foreach (Type/*!*/ t in Arguments)
+ {
+ Contract.Assert(t != null);
+ newArgs.Add(t.Substitute(subst));
+ }
}
return new CtorType(tok, Decl, newArgs);
}
@@ -3336,9 +3340,13 @@ Contract.Assert(var != null);
}
List<Type> newArgs = new List<Type>();
- foreach (Type/*!*/ t in Arguments) {
- Contract.Assert(t != null);
- newArgs.Add(t.Substitute(subst));
+ lock (Arguments)
+ {
+ foreach (Type/*!*/ t in Arguments)
+ {
+ Contract.Assert(t != null);
+ newArgs.Add(t.Substitute(subst));
+ }
}
Type/*!*/ newResult = Result.Substitute(subst);
Contract.Assert(newResult != null);