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.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,bd40601768eaf8fd X-Google-Attributes: gid103376,public From: Vincent Marciante Subject: Re: 'constant functions' and access constant params (was Re: Array of Variant Records Question...) Date: 1999/09/23 Message-ID: <37E9B259.7C58@l5i.net>#1/1 X-Deja-AN: 528520547 Content-Transfer-Encoding: 7bit References: <7r5vh3$imu1@svlss.lmms.lmco.com> <37d6a45c@news1.prserv.net> <37d6ccb6@news1.prserv.net> <7r77i8$i08$1@nnrp1.deja.com> <37d7c116@news1.prserv.net> <7r8t21$ov5$1@nnrp1.deja.com> <37d822a1@news1.prserv.net> <7reg02$t83@dfw-ixnews6.ix.netcom.com> <37DE8D09.C863CBC9@rational.com> <7roohh$s6r@dfw-ixnews7.ix.netcom.com> <37e01168@news1.prserv.net> <7rp86o$c6h@dfw-ixnews3.ix.netcom.com> <37E18CC6.C8D431B@rational.com> <7rs8bn$s6@dfw-ixnews4.ix.netcom.com> <37e2e58c@news1.prserv.net> <7s9nd0$cbe@dfw-ixnews17.ix.netcom.com> <37e8e067@news1.prserv.net> <7sas3p$bfa@dfw-ixnews3.ix.netcom.com> <37e994c0@news1.prserv.net> Content-Type: text/plain; charset=us-ascii X-Complaints-To: abuse@verio.net X-Trace: iad-read.news.verio.net 938062343 209.139.0.58 (Thu, 23 Sep 1999 04:52:23 GMT) Organization: Verio MIME-Version: 1.0 NNTP-Posting-Date: Thu, 23 Sep 1999 04:52:23 GMT Newsgroups: comp.lang.ada Date: 1999-09-23T00:00:00+00:00 List-Id: Matthew Heaney wrote: > > We agree that the language should be amended to be able to pass parameters > as "access constant T" instead of just "access T", where T is any kind of > type. > Would the following (or similar) also require consideration? Doesn't it also exhibit a loophole? If not, why not? ... type scalar is new integer type scalar_reference is access all scalar; type composite is record sca : scalar; ref : scalar_reference; end record; type composite_reference is access composite; type composite_node is record ref1 : scalar_reference; ref2 : composite_reference; end record; ... function inc_formal_ref1_object (formal : composite_node) return boolean is begin formal.ref1.all := scalar'succ(formal.ref1.all); return true; exception when others => return false; end; function inc_formal_ref2_ref_object (formal : composite_node) return boolean is begin formal.ref1.ref.all := scalar'succ(formal.ref1.ref.all); return true; exception when others => return false; end; -- To reply, please remove the four and five from the anti-spammed address that is shown.