diff options
author | qunyanm <unknown> | 2015-12-02 12:35:54 -0800 |
---|---|---|
committer | qunyanm <unknown> | 2015-12-02 12:35:54 -0800 |
commit | f7ab307779e4d21d706be13acad670d63d0e6537 (patch) | |
tree | 63ae17dcec2ebfdad7973af57799a5e00a2a85fc | |
parent | 223d3d98b80519f936cbdcc6ca31cdd2819bd900 (diff) |
Fix issue 110. Set useImport to true when trying to registerTopLevelDecls
in MakeAbstractSignature.
-rw-r--r-- | Source/Dafny/Resolver.cs | 2 | ||||
-rw-r--r-- | Test/dafny4/Bug110.dfy | 31 | ||||
-rw-r--r-- | Test/dafny4/Bug110.dfy.expect | 2 |
3 files changed, 34 insertions, 1 deletions
diff --git a/Source/Dafny/Resolver.cs b/Source/Dafny/Resolver.cs index 52845c3f..9dc0f829 100644 --- a/Source/Dafny/Resolver.cs +++ b/Source/Dafny/Resolver.cs @@ -1269,7 +1269,7 @@ namespace Microsoft.Dafny foreach (var kv in p.TopLevels) {
mod.TopLevelDecls.Add(CloneDeclaration(kv.Value, mod, mods, Name));
}
- var sig = RegisterTopLevelDecls(mod, false);
+ var sig = RegisterTopLevelDecls(mod, true);
sig.Refines = p.Refines;
sig.CompileSignature = p;
sig.IsAbstract = p.IsAbstract;
diff --git a/Test/dafny4/Bug110.dfy b/Test/dafny4/Bug110.dfy new file mode 100644 index 00000000..239f18d3 --- /dev/null +++ b/Test/dafny4/Bug110.dfy @@ -0,0 +1,31 @@ +// RUN: %dafny /compile:0 "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
+module Io {
+ predicate AdvanceTime(oldTime:int) { oldTime > 2 }
+ class Time
+ {
+ static method GetTime()
+ ensures AdvanceTime(1);
+ }
+
+ function MaxPacketSize() : int { 65507 }
+
+ class UdpClient
+ {
+ method Receive()
+ ensures AdvanceTime(3);
+
+ method Send() returns(ok:bool)
+ requires 0 <= MaxPacketSize();
+ }
+}
+
+abstract module Host {
+ import opened Io // Doesn't work.
+ //import Io // Works
+}
+
+abstract module Main {
+ import H as Host
+}
diff --git a/Test/dafny4/Bug110.dfy.expect b/Test/dafny4/Bug110.dfy.expect new file mode 100644 index 00000000..42fd56a5 --- /dev/null +++ b/Test/dafny4/Bug110.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 8 verified, 0 errors
|