diff options
Diffstat (limited to 'Source/Core/Absy.cs')
-rw-r--r-- | Source/Core/Absy.cs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/Source/Core/Absy.cs b/Source/Core/Absy.cs index 7b3f6fc5..ef2f8ee0 100644 --- a/Source/Core/Absy.cs +++ b/Source/Core/Absy.cs @@ -2863,12 +2863,15 @@ namespace Microsoft.Boogie { v.Typecheck(tc);
}
List<IdentifierExpr> oldFrame = tc.Frame;
+ bool oldYields = tc.Yields;
tc.Frame = Proc.Modifies;
+ tc.Yields = QKeyValue.FindBoolAttribute(Proc.Attributes, "yields");
foreach (Block b in Blocks) {
b.Typecheck(tc);
}
Contract.Assert(tc.Frame == Proc.Modifies);
tc.Frame = oldFrame;
+ tc.Yields = oldYields;
}
void MatchFormals(List<Variable>/*!*/ implFormals, List<Variable>/*!*/ procFormals, string/*!*/ inout, TypecheckingContext/*!*/ tc) {
Contract.Requires(implFormals != null);
|