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,42e1651b277d99e X-Google-Attributes: gid103376,public From: eachus@spectre.mitre.org (Robert I. Eachus) Subject: Re: Extensions in generic bodies - Language Laywer question Date: 1998/10/08 Message-ID: #1/1 X-Deja-AN: 399097215 References: <6vijho$qps$1@nnrp1.dejanews.com> Organization: The Mitre Corp., Bedford, MA. Newsgroups: comp.lang.ada Date: 1998-10-08T00:00:00+00:00 List-Id: In article <6vijho$qps$1@nnrp1.dejanews.com> dennison@telepath.com writes: > Here's one for the langauge Laywers. 3.9.1(4) says: "A type extension shall > not be declared in a generic body if the parent type is declared > outside that body." Yes, it has to do with dispatch tables. The same problem occurs with non-generic bodies, but other rules ensure that the problem cases can never occur. > Does that also go for instantiating generics that *cause* a type > extension? My compiler seems to think so. Yes. > My situation: I'm trying to create a generic object. Internally > (In the body) I want to keep a queue of these objects... In this case, you should be able to declare the type in the private part, and I remember that as the reason for keeping the rule simple. In any case that can be made to work, the type declaration can be moved to (the private part of) the generic spec. This may, as in the current case, also require moving with clauses. (In pathological cases, you have to move the declaration to a new child unit.) -- Robert I. Eachus with Standard_Disclaimer; use Standard_Disclaimer; function Message (Text: in Clever_Ideas) return Better_Ideas is...