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!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: 'Class'Class'Class'Class ad libitum Date: Tue, 13 Sep 2016 14:37:12 +0200 Organization: Aioe.org NNTP Server Message-ID: References: NNTP-Posting-Host: vZYCW951TbFitc4GdEwQJg.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:31772 Date: 2016-09-13T14:37:12+02:00 List-Id: On 13/09/2016 12:43, Alejandro R. Mosteo wrote: > I get why this is legal: > > type X is tagged null record; > > subtype Y is X'Class; > > subtype Z is X'Class'Class'Class'Class; > > But can you think of any legitimate reason to use it besides obfuscation? Only the latter is wrong. X'Class'Class cannot be same as X'Class. X is a set of values with operations on X X'Class is a set of values of X and values of all types derived from X X'Class'Class should be a set of values of X'Class and values of all types derived from X'Class. We cannot derive from X'Class in Ada, so class of X'Class holds only X'Class. But that does not make them same. Like X is not same as X'Class even if there is no descendants of X. Class-wide operations of X would be primitive operations of X'Class'Class. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de