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.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: a07f3367d7,545a08a159900a97 X-Google-Attributes: gida07f3367d7,public,usenet X-Google-NewGroupId: yes X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news4.google.com!proxad.net!feeder1-2.proxad.net!u-picardie.fr!news.ecp.fr!news.jacob-sparre.dk!pnx.dk!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: Ada 95 and Class attribute for none-tagged incomplete type Date: Thu, 13 Aug 2009 23:21:39 -0500 Organization: Jacob Sparre Andersen Message-ID: References: <8442c52d-805f-4ca8-95ab-b4c8e949d7cd@k6g2000yqn.googlegroups.com> <17b5de2e-74df-414a-b214-677344dc697e@x25g2000prf.googlegroups.com> <4a83cc73$0$6272$4f793bc4@news.tdc.fi> NNTP-Posting-Host: static-69-95-181-76.mad.choiceone.net X-Trace: munin.nbi.dk 1250223767 19266 69.95.181.76 (14 Aug 2009 04:22:47 GMT) X-Complaints-To: news@jacob-sparre.dk NNTP-Posting-Date: Fri, 14 Aug 2009 04:22:47 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5512 X-RFC2646: Format=Flowed; Original X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 Xref: g2news2.google.com comp.lang.ada:7752 Date: 2009-08-13T23:21:39-05:00 List-Id: "Robert A Duff" wrote in message news:wcc7hx7onv6.fsf@shell01.TheWorld.com... ... > The purpose of the rule is so you can create recursive types, as in: > > package P is > type Priv is private; > private > type Acc is access all Priv'Class; -- Legal!!!!!! > type Priv is tagged > record > Next : Acc; > ... --etc. > end record; > end P; > > without exposing the taggedness to clients. Note that Acc is in the > private part, so there's no privacy-breaking going on. Another example of why you ought to come to meetings more often. I don't recall anyone figuring that out per-se (although it is obvious that you can use it in this way). All this special rule eliminates is the need to declare an incomplete type in this one unusual case (the private type in cases like this is best declared as tagged, so this shouldn't happen very often). Seems like a pile of work for an implementation and for the language just to eliminate one line in a private part. Randy.