From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fac41,c52c30d32b866eae X-Google-Attributes: gidfac41,public X-Google-Thread: 103376,2ea02452876a15e1 X-Google-Attributes: gid103376,public X-Google-Thread: 1108a1,c52c30d32b866eae X-Google-Attributes: gid1108a1,public From: jhd@herold.franken.de (Joachim Durchholz) Subject: Re: Real OO Date: 1996/05/14 Message-ID: <68qK9Dyk3RB@herold.franken.de>#1/1 X-Deja-AN: 155782675 references: newsgroups: comp.lang.eiffel,comp.lang.ada,comp.object Date: 1996-05-14T00:00:00+00:00 List-Id: bobduff@world.std.com wrote 14.05.96 on Re: Real OO: > I believe that in Eiffel, a precondition can refer to a private data > item, Yes. > of which the client knows nothing. No, only if all possible clients have access to the private data. Quoting from the language definition: "VAPE: A Precondition of a routine *r* of a class *C* is valid if and only iff every feature whose final name appears in any Assertion_clause is available to every class to which *r* is available." I.e. a precondition must not use a feature that the caller does not know of. If a feature is exported, all features used in the precondition must be exported too. Note that this export may be constrained - a feature may be exported to a few well-known cooperating classes and nowhere else. This means that any features used in the precondition must be exported as well. -Joachim -- Looking for a new job. Resume available on request.