diff options
Diffstat (limited to 'Chalice/src/Resolver.scala')
-rw-r--r-- | Chalice/src/Resolver.scala | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/Chalice/src/Resolver.scala b/Chalice/src/Resolver.scala index bdcc7108..d4adbec3 100644 --- a/Chalice/src/Resolver.scala +++ b/Chalice/src/Resolver.scala @@ -1079,7 +1079,7 @@ object Resolver { def ResolveTransform(mt: MethodTransform, context: ProgramContext) {
mt.spec foreach {
case Precondition(e) =>
- context.Error(e.pos, "Method refinement cannot have a pre-condition")
+ context.Error(e.pos, "Method refinement cannot add a pre-condition")
case Postcondition(e) =>
ResolveExpr(e, context.SetClass(mt.Parent).SetMember(mt), true, true)(false)
case _ : LockChange => throw new Exception("not implemented")
@@ -1139,5 +1139,7 @@ object Resolver { }
ResolveExpr(ci.e, context.SetClass(cl).SetMember(ci), false, true)(true)
if (!ci.e.typ.IsBool) context.Error(ci.pos, "coupling invariant requires a boolean expression (found " + ci.e.typ.FullName + ")")
+ // TODO: check coupling invariant may only give permissions to newly declared fields
+ // TODO: check concrete body cannot refer to replaced fields
}
}
|