diff options
author | Rustan Leino <unknown> | 2013-07-30 01:55:51 -0700 |
---|---|---|
committer | Rustan Leino <unknown> | 2013-07-30 01:55:51 -0700 |
commit | 395bb1607e1884d565619ed0df5df45a9ead99c5 (patch) | |
tree | bd2b1d4c11d5a12287456b0f11384969d8c7e8a1 /Source/Dafny/DafnyAst.cs | |
parent | 599d33451d472d79df4592d0208526e590ec5de9 (diff) |
Co-recursion, now sounder than ever!
- prefix equality is destructive
- co-methods are not allowed to have out-parameters
- in an SCC with both co-recursive and recursive calls, the latter are allowed only in non-destructive contexts
Diffstat (limited to 'Source/Dafny/DafnyAst.cs')
-rw-r--r-- | Source/Dafny/DafnyAst.cs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/Source/Dafny/DafnyAst.cs b/Source/Dafny/DafnyAst.cs index 0aac1cd6..b58f392c 100644 --- a/Source/Dafny/DafnyAst.cs +++ b/Source/Dafny/DafnyAst.cs @@ -3933,7 +3933,8 @@ namespace Microsoft.Dafny { NoBecauseFunctionHasSideEffects,
NoBecauseFunctionHasPostcondition,
NoBecauseRecursiveCallsAreNotAllowedInThisContext,
- NoBecauseIsNotGuarded
+ NoBecauseIsNotGuarded,
+ NoBecauseRecursiveCallsInDestructiveContext
}
public CoCallResolution CoCall = CoCallResolution.No; // indicates whether or not the call is a co-recursive call; filled in by resolution
|