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=0.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC,XPRIO autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,39cb793e32a5b7d9,start X-Google-Attributes: gid103376,public From: Barry and Jackie Schiff Subject: A question for compiler vendors/lang experts. redefinition of "=" Date: 1997/12/16 Message-ID: <34964C63.F97005E6@netspace.net.au>#1/1 X-Deja-AN: 298649762 Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) Mime-Version: 1.0 Reply-To: schiff@netspace.net.au Content-Type: text/plain; charset=us-ascii Organization: A customer of Netspace Internet Newsgroups: comp.lang.ada Date: 1997-12-16T00:00:00+00:00 List-Id: Got one answer from a large compiler vendor when another vendor's implementation implies otherwise. Looked in the Rationale and LRM and it was hard to find a clear answer. So here is the question for all those language experts out there: package Foo is type objects is abstract tagged record Some_value : some_type; end record; type class_wide_pointers is access all objects'class; function "="(left, right : access objects) return boolean; -- Legal?? end Foo; The question: Is the redefinition of "=" shown above legal and if so what are the semantics. Specifically, is "=" a dispatching primitive operation or is it ambiguous with the predefined equality defined for the class_wide_pointers type. -------------- In my reading the LRM it seems to me that the spirit of access parameters is that the above operation is a dispatching operation. I have had a large Ada compiler vendor tell me that the above is ambiguous. While another compiler implements that above as a dispatching operation. Can anyone point me to the definitive answer in the LRM. Thanks in advance. If it is not to much trouble could you email answer. --Barry Schiff