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=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watnot!watmath!clyde!rutgers!ames!ucbcad!ucbvax!SIERRA.STANFORD.EDU!ROSENBLUM From: ROSENBLUM@SIERRA.STANFORD.EDU.UUCP Newsgroups: comp.lang.ada Subject: Re: language problem Message-ID: <12291368304.48.ROSENBLUM@Sierra.Stanford.EDU> Date: Thu, 2-Apr-87 15:22:39 EST Article-I.D.: Sierra.12291368304.48.ROSENBLUM Posted: Thu Apr 2 15:22:39 1987 Date-Received: Sat, 4-Apr-87 18:52:25 EST References: <12291366595.33.BRYAN@Sierra.Stanford.EDU> Sender: daemon@ucbvax.BERKELEY.EDU Distribution: world Organization: The ARPA Internet List-Id: I think that the LRM is pretty clear on this point. 4.5.6 (2) says that the "not" operator takes a value of any array of boolean components, and returns a value of the same array type. The important words here are SAME TYPE. 3.6 (5) says that an array type is characterized by a set of index types and a component subtype. Thus, in the example the value of "not A" must be a value of the type of A, which is ARR. Since the resulting component values do not satisfy the component subtype constraint, the result is NOT a value of type ARR. Ergo, CONSTRAINT_ERROR must be raised by the evaluation of "not A". Note that the fact that the expression appears in an array assignment is not germane; the evaluation of such a "not A" in any context should raise CONSTRAINT_ERROR. -- David. -------