达芙妮 "Call may violate context's modifies clause"
Dafny "Call may violate context's modifies clause"
我正在尝试验证哈希集,但 运行 我的插入方法出现问题。
我不明白为什么在取消注释 main 中的插入时会出现 "call may violate context's modifies clause" 错误。我认为这与新鲜的使用有关,但我不清楚如何/在何处执行此操作。
代码可在以下位置找到:https://rise4fun.com/Dafny/9UDG
问题是插入声明修改 this
和 a
,这使得第一次调用 insert
将 a
字段更改为指向的可能性任意的东西,然后第二次调用 insert
修改那个任意的东西。
一个简单的解决方案是将 ensures a == old(a)
添加到 insert
。
我正在尝试验证哈希集,但 运行 我的插入方法出现问题。
我不明白为什么在取消注释 main 中的插入时会出现 "call may violate context's modifies clause" 错误。我认为这与新鲜的使用有关,但我不清楚如何/在何处执行此操作。
代码可在以下位置找到:https://rise4fun.com/Dafny/9UDG
问题是插入声明修改 this
和 a
,这使得第一次调用 insert
将 a
字段更改为指向的可能性任意的东西,然后第二次调用 insert
修改那个任意的东西。
一个简单的解决方案是将 ensures a == old(a)
添加到 insert
。