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: fac41,b87849933931bc93 X-Google-Attributes: gidfac41,public X-Google-Thread: 109fba,b87849933931bc93 X-Google-Attributes: gid109fba,public X-Google-Thread: 1108a1,b87849933931bc93 X-Google-Attributes: gid1108a1,public X-Google-Thread: 103376,b87849933931bc93 X-Google-Attributes: gid103376,public X-Google-Thread: f43e6,b87849933931bc93 X-Google-Attributes: gidf43e6,public X-Google-Thread: 114809,b87849933931bc93 X-Google-Attributes: gid114809,public From: jsa@alexandria (Jon S Anthony) Subject: Re: OO, C++, and something much better! Date: 1997/01/16 Message-ID: #1/1 X-Deja-AN: 210301854 sender: news@organon.com (news) organization: Organon Motives, Inc. newsgroups: comp.lang.c++,comp.lang.smalltalk,comp.lang.eiffel,comp.lang.ada,comp.object,comp.software-eng Date: 1997-01-16T00:00:00+00:00 List-Id: Don writes: > Jon S Anthony writes: > > :> For example, by using the value of a parent type where a subrange > :> value is required. > : > :Give an example. > > The following is a valid Ada83 program (and presumably valid Ada95): > > procedure Test_Type_Hole is > subtype Sub_Integer is Integer range 1 .. 10; > I: Integer; > S: Sub_Integer; > > procedure Use_Subtype (S: Sub_Integer) is > begin > null; > end; > > begin > I := 1000; > Use_Subtype (I); -- System Invalid call - raises > -- Constraint_Error at runtime. > end Test_Type_Hole; > > So, contrary to your claim, Ada *does* permit a form of broken polymorphism. Don. What in the world are you talking about??? This is just plain wrong and even borders on outright silly. Where's the polymorphism of any form here? Subtypes are ways of defining constraints (simple "assertions") on the possible values of the type. Sub_Integer is not a new type and is not a type derivation. So, you only have one type here (Re: RM: 3.2(8)) The CE, is simply stating that you have violated the constraint (assertion). No polymorphism broken or otherwise involved. Also, while it is certainly not necessary, this case is so simple (for DFA) I am a little surprised that GNAT did not give a warning about this at compile time. /Jon -- Jon Anthony Organon Motives, Inc. Belmont, MA 02178 617.484.3383 jsa@organon.com