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: 103376,4894bc8fcf637af8 X-Google-Attributes: gid103376,public,usenet X-Google-Language: ENGLISH,ASCII Path: g2news1.google.com!news4.google.com!proxad.net!feeder1-2.proxad.net!news.cs.univ-paris8.fr!u-psud.fr!not-for-mail From: Philippe Tarroux Newsgroups: comp.lang.ada Subject: Re: Interfaces and private types Date: Tue, 29 Jan 2008 14:08:25 +0100 Organization: University Paris-Sud, France. Message-ID: References: <479f208d$0$27200$9b4e6d93@newsspool1.arcor-online.net> NNTP-Posting-Host: osiris.limsi.fr Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-Trace: news2.u-psud.fr 1201612010 26058 129.175.157.197 (29 Jan 2008 13:06:50 GMT) X-Complaints-To: newsmaster@u-psud.fr NNTP-Posting-Date: Tue, 29 Jan 2008 13:06:50 +0000 (UTC) User-Agent: Thunderbird 2.0.0.9 (Windows/20071031) In-Reply-To: <479f208d$0$27200$9b4e6d93@newsspool1.arcor-online.net> Xref: g2news1.google.com comp.lang.ada:19652 Date: 2008-01-29T14:08:25+01:00 List-Id: Georg Bauhaus a �crit : > Philippe Tarroux schrieb: >> Randy Brukardt wrote: >>> Specifically, it violates 7.3(7.3/2): "the partial view shall be a >>> descendant of an interface type (see 3.9.4) if and only if the full >>> type is >>> a descendant of the interface type." >>> As written, this is illegal because type T does not have the >>> interface Int. >> As it is written the compiler i use doesn't mention any error and i >> interpreted this construct as legal because : >> >> 1/ the interface is synchronized thus allowing to derive concurrent >> or non concurrent types >> 2/ The partial view is a descendant of the interface type >> 3/ The full view precises that the partial view correspond to a >> concurrent type but hides this detail to the user > > I'd rather think that the compiler should diagnose conflicting > declaration of T in the private part as the private T does not > declare a relation with the public T. Yes I agree if one adopt the principle that an explicity declaration is more readable (and more in accordance with the general Ada philosophy). It is indeed true that the relation between the public and private T's was implicit in my example. > > If you do not want to derive T publicly, why not > > package Test_Interfaces is > > type Int is synchronized interface; > procedure Init (I : in out Int) is abstract; > > type T is limited private; > > private > > task type T is new Int with > overriding entry Init; > end T; > end Test_Interfaces; > I agree too.Your solution removes the ambiguity. Philippe Tarroux