public override Ensures VisitEnsures(Ensures node) { //Contract.Requires(node != null); Contract.Ensures(Contract.Result<Ensures>() != null); return base.VisitEnsures((Ensures)node.Clone()); }
private Cmd InlinedEnsures(CallCmd callCmd, Ensures ens) { if (QKeyValue.FindBoolAttribute(ens.Attributes, "InlineAssume")) { return new AssumeCmd(ens.tok, codeCopier.CopyExpr(ens.Condition)); } else if (ens.Free) { return new AssumeCmd(ens.tok, Expr.True); } else { Ensures/*!*/ ensCopy = (Ensures/*!*/)cce.NonNull(ens.Clone()); ensCopy.Condition = codeCopier.CopyExpr(ens.Condition); return new AssertEnsuresCmd(ensCopy); } }