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!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Ada Successor Language Date: Mon, 25 Jun 2018 16:21:57 +0200 Organization: Aioe.org NNTP Server 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> NNTP-Posting-Host: MyFhHs417jM9AgzRpXn7yg.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 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 X-Notice: Filtered by postfilter v. 0.8.3 Content-Language: en-US Xref: reader02.eternal-september.org comp.lang.ada:53301 Date: 2018-06-25T16:21:57+02:00 List-Id: On 2018-06-25 16:03, Niklas Holsti wrote: > (In fact, it seems to me that Ada could allow untagged record extensions > as well; the effect would be the same as for tagged ones, but no 'Class > would be formed, and no class-wide programming or dynamic dispatch could > be used, so all such types would be static. Ada could allow T'Class for untagged T. T'Class would be an indefinite type with values consisting of the actual type's tag and its value. When T is by-value type, you pass T'Class to a subprogram as tag + value. When T is by-reference type, you pass tag + reference. Upon dispatch, you strip the tag from the value or reference before passing value/reference down. P.S. No re-dispatch is possible in this model, sorry. P.P.S. Tagged type is a special case when T and T'Class have same representation. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de