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,a00ff2b882a06fda X-Google-Attributes: gid103376,public From: "Samuel T. Harris" Subject: Re: HELP: renames and enum values Date: 2000/04/13 Message-ID: <38F631AB.44CC06EB@Raytheon.com>#1/1 X-Deja-AN: 610828952 Content-Transfer-Encoding: 7bit References: <38ECE0EB.4BD4A53E@mindspring.com> <38EE2019.4C91075D@Raytheon.com> <38EE494D.DDB9CE9@mindspring.com> <8cp1hd$3so$1@nnrp1.deja.com> <8cqf1i$i72$1@nnrp1.deja.com> <38F5D6F9.5B8892F2@bton.ac.uk> X-Accept-Language: en Content-Type: text/plain; charset=us-ascii Organization: Raytheon Aerospace Engineering Services Mime-Version: 1.0 Newsgroups: comp.lang.ada Date: 2000-04-13T00:00:00+00:00 List-Id: John English wrote: > > Dale Stanbrough wrote: > > All i was attempting to say is that > > > > type blah renames bleh; > > > > could be predicted to have the same semantics as a subtype > > declaration (this would be the "other way" of performing > > subtyping). > > > > I know what beginners think of, because I had 8 years of > > teaching beginners. This is something that some of them > > thought of (but not many because most of them were introduced > > to subtypes long before renames!). > > What's even less obvious is the way to rename enumeration literals: > > function Enum_Literal return Enum_Type renames Other_Enum_Literal; > > Now, that *really* confuses them, and none of them would ever be > able to guess it without being told! > Perhaps I am not "one of them" since I figured this out quickly the first time I ran into this renaming problem way back in my youth. I learned Ada 83 by reading the reference manual long before I had a compiler to play with. During my initial reading, I found it strange that enumeration literals would be defined as parameterless functions. A little introspection quickly revealed the necessity of this semantic definition to allow the same literal to be used in different enumeration type definitions. When I later actually had a compiler to use and needed to rename some enumeration literals, the function renames was the first thing I thought of. I actually did not expect the compiler to accept it, figuring the semantic definition was just some standarized sugar but was pleasantly surprise with the successful results. -- Samuel T. Harris, Principal Engineer Raytheon, Aerospace Engineering Services "If you can make it, We can fake it!"