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,MAILING_LIST_MULTI, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,ae9506fd4dcf7090 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2002-10-22 22:22:03 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news.tele.dk!news.tele.dk!small.news.tele.dk!fr.usenet-edu.net!usenet-edu.net!enst.fr!not-for-mail From: "Grein, Christoph" Newsgroups: comp.lang.ada Subject: Re: Concatenation and Characters Date: Wed, 23 Oct 2002 07:15:59 +0200 (MET DST) Organization: ENST, France Sender: comp.lang.ada-admin@ada.eu.org Message-ID: Reply-To: comp.lang.ada@ada.eu.org NNTP-Posting-Host: marvin.enst.fr Mime-Version: 1.0 Content-Type: TEXT/plain; charset=us-ascii X-Trace: avanie.enst.fr 1035350522 45344 137.194.161.2 (23 Oct 2002 05:22:02 GMT) X-Complaints-To: usenet@enst.fr NNTP-Posting-Date: Wed, 23 Oct 2002 05:22:02 +0000 (UTC) Return-Path: X-Authentication-Warning: mail.eurocopter.com: uucp set sender to using -f Content-MD5: SEgv1NX2/2TQ+dJiFUEvqQ== X-Mailer: dtmail 1.2.1 CDE Version 1.2.1 SunOS 5.6 sun4u sparc Errors-To: comp.lang.ada-admin@ada.eu.org X-BeenThere: comp.lang.ada@ada.eu.org X-Mailman-Version: 2.0.13 Precedence: bulk X-Reply-To: "Grein, Christoph" List-Unsubscribe: , List-Id: comp.lang.ada mail<->news gateway List-Post: List-Help: List-Subscribe: , Errors-To: comp.lang.ada-admin@ada.eu.org X-BeenThere: comp.lang.ada@ada.eu.org Xref: archiver1.google.com comp.lang.ada:30057 Date: 2002-10-23T07:15:59+02:00 > It really is a language design flaw that you can't have a zero-length > positional aggregate. with Ada.Text_IO; use Ada.Text_IO; procedure Xxx is type Empty is range 1 .. 0; type Array_Type is array (Positive range <>) of Empty; function F return Array_Type is begin return (5 .. 4 => 0); end; Nothing: Array_Type := F; begin Put_Line (Boolean'Image (Nothing = (7..4 => Empty'First))); Put_Line (Boolean'Image (Nothing = (0..-1 => Empty'Last))); end Xxx; try to run this. No value can fulfil the range constraint of Empty, but it does not matter, since the range is empty and the value is not evaluated. (I'm not so sure that the range 0..-1 is legal, but my compiler accepts it and prints True twice, and I just do not feel like searching the RM :-(