On Sun, 20 January 2002, "Me" wrote > > - LAST > (Per Damian's last (LAST/POST) post.)
Yup. > - FIRST? > (Symmetry.) No. We feel that such code just goes at the start of the block. Of course, there's an argument that you might have several entry points to a block (via C<goto> labels) and still want some code executed no matter where you land inside. I'm just not sure we really want to support that pathology. ;-) > - ALWAYS? > (Another plausible addition. Rounds out PRE and POST > with invariant assertions that get checked twice, once at > the time PRE does, once at the time POST does. > Personally I'd leave this out until it became clear, well > past p6.0, whether it was really worth it, but it seems > worth mentioning.). I feel the same way. Invariant checking in most Design-by-Contract systems doesn't work that way, and has another purpose entirely. Invariants are implicitly POST blocks that are automatically distributed to *all* methods of the class for which they're defined, but which only execute on transitions back to callers *outside* that class's hierarchy. Perl 6 *will* have invariant checking, but I believe it should be via a property on the class declaration: class Positive is always { $.value > 0 } is always { $.feelings =~ /optimistic/i } is always { $.polarity eq '+' }; Damian