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=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!feeder.eternal-september.org!nntp-feed.chiark.greenend.org.uk!ewrotcd!newsfeed.xs3.de!io.xs3.de!news.jacob-sparre.dk!franka.jacob-sparre.dk!pnx.dk!.POSTED.rrsoftware.com!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: Ada Successor Language Date: Fri, 29 Jun 2018 15:47:29 -0500 Organization: JSA Research & Innovation Message-ID: References: <5e86db65-84b9-4b5b-9aea-427a658b5ae7@googlegroups.com> <878t7u1cfm.fsf@nightsong.com> <776f3645-ed0c-4118-9b4d-21660e3bba4b@googlegroups.com> <87602fbu2g.fsf@nightsong.com> <87po0mziqt.fsf@nightsong.com> <87fu1izfgs.fsf@nightsong.com> <878t75nwad.fsf@adaheads.home> Injection-Date: Fri, 29 Jun 2018 20:47:29 -0000 (UTC) Injection-Info: franka.jacob-sparre.dk; posting-host="rrsoftware.com:24.196.82.226"; logging-data="2393"; mail-complaints-to="news@jacob-sparre.dk" X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 X-RFC2646: Format=Flowed; Response X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.7246 Xref: reader02.eternal-september.org comp.lang.ada:53448 Date: 2018-06-29T15:47:29-05:00 List-Id: "Alejandro R. Mosteo" wrote in message news:pgqtk8$avk$1@dont-email.me... > On 25/06/2018 14:41, J-P. Rosen wrote: ... >> The same derivation would not compile in the body of the generic, where >> the worst is assumed > GNAT 7.3/2018 does compile it if I move it to the private part or body, > which thus must be a bug, as hinted by that it allows taking the type's > 'Class... > > procedure Blah is > > generic > type Something is private; > package Duh is private type Meh is new Something; -- This is legal, as I noted earlier. This is legal because there is no place where the type is both known to be tagged and known to be untagged. Inside this generic, the type is untagged. > function Yes (M : Meh) return Boolean is (True); > function Yes_Class (M : Meh'Class) return Boolean is (True); -- This is *illegal*, Meh is not a tagged type. If GNAT is allowing this, it is a compiler bug. > end Duh; > > type Oh is tagged null record; > > package Ouch is new Duh (Oh); -- This fails with non-tagged formal This should work, assuming that the (illegal) 'Class is not included. > begin > null; > end Blah; I suggest a GNAT bug report. Randy.