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.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!postnews.google.com!f15g2000yqe.googlegroups.com!not-for-mail From: Gautier write-only Newsgroups: comp.lang.ada Subject: Type of the target of an assignment shall not be abstract Date: Sun, 14 Feb 2010 06:20:32 -0800 (PST) Organization: http://groups.google.com Message-ID: <770863d9-14ae-4a05-b924-2dfeda7a96a8@f15g2000yqe.googlegroups.com> NNTP-Posting-Host: 62.202.123.144 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 X-Trace: posting.google.com 1266157232 29691 127.0.0.1 (14 Feb 2010 14:20:32 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Sun, 14 Feb 2010 14:20:32 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: f15g2000yqe.googlegroups.com; posting-host=62.202.123.144; posting-account=gRqrnQkAAAAC_02ynnhqGk1VRQlve6ZG User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.7) Gecko/20100104 SeaMonkey/2.0.2,gzip(gfe),gzip(gfe) Xref: g2news1.google.com comp.lang.ada:9215 Date: 2010-02-14T06:20:32-08:00 List-Id: Hello, A question for the RM hermeneutists. The instruction marked below with ">>>" goes well through one Ada 95 compiler (GNAT with -gnat95) but is not accepted by another one (ObjectAda 7.2.2). Which compiler is right ? procedure Init( xl : in out Excel_Out_Stream'Class; format : Excel_type:= Default_Excel_type ) is dummy_xl_with_defaults: Excel_Out_File; begin -- Check if we are trying to re-use a half-finished object (ouch!): if xl.is_created and not xl.is_closed then raise Excel_Stream_Not_Closed; end if; dummy_xl_with_defaults.format:= format; >>> Excel_Out_Stream(xl):= Excel_Out_Stream(dummy_xl_with_defaults); end Init; >>> excel_out.adb: Error: line 595 col 5 LRM:3.9.3(8), The type of the target of an assignment shall not be abstract For those asking themselves what the *@#$! that code is doing, since the xl variable is already initialized, the purpose of the := is to re- initialize an object (xl) with the default values of the root type. Since the root type is abstract, I need a concrete derived object (dummy_xl_with_defaults) to get these default values. Subsidiary question: is there another way of doing that in one ':=' ? The whole package is visible @ http://excel-writer.sourceforge.net/ew_html/excel_out__adb.htm#553_13 ______________________________________________________________ Gautier's Ada programming -- http://gautiersblog.blogspot.com/