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.9 required=5.0 tests=BAYES_00,FORGED_GMAIL_RCVD, FREEMAIL_FROM autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,dfdb3e9be36e818e X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII Received: by 10.68.15.41 with SMTP id u9mr962401pbc.3.1321919124923; Mon, 21 Nov 2011 15:45:24 -0800 (PST) Path: lh20ni3218pbb.0!nntp.google.com!news2.google.com!postnews.google.com!f29g2000yqa.googlegroups.com!not-for-mail From: Gene Newsgroups: comp.lang.ada Subject: Re: type access Parent'Class Date: Mon, 21 Nov 2011 15:45:24 -0800 (PST) Organization: http://groups.google.com Message-ID: <558f254a-1ae9-4f22-9430-5f110ae595b1@f29g2000yqa.googlegroups.com> References: <7fd768a4-f97b-4045-8bab-49d2a3897a61@p2g2000vbj.googlegroups.com> NNTP-Posting-Host: 90.35.187.5 Mime-Version: 1.0 X-Trace: posting.google.com 1321919124 1529 127.0.0.1 (21 Nov 2011 23:45:24 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Mon, 21 Nov 2011 23:45:24 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: f29g2000yqa.googlegroups.com; posting-host=90.35.187.5; posting-account=-BkjswoAAACC3NU8b6V8c50JQ2JBOs04 User-Agent: G2/1.0 X-Google-Web-Client: true X-Google-Header-Order: ARLUEHNKC X-HTTP-UserAgent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; HPNTDF; .NET4.0C; AskTbORJ/5.13.1.18107),gzip(gfe) Xref: news2.google.com comp.lang.ada:14500 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Date: 2011-11-21T15:45:24-08:00 List-Id: On Nov 21, 8:25=A0pm, Adam Beneschan wrote: > On Nov 21, 11:03=A0am, Yukicanis wrote: > > > > > > > Dear Group, > > > I'm new to Ada and currently playing around with its OOP features. > > Now, I have the following source: > > > procedure Test is > > =A0 type Parent is tagged limited null record; > > =A0 type Parent_Access is access Parent'Class; > > =A0 A : access Parent'Class; > > =A0 B : Parent_Access; > > =A0 procedure Dyn_Disp(X : access Parent'Class) is > > =A0 begin > > =A0 =A0 A :=3D X; > > =A0 =A0 B :=3D X; > > =A0 end Dyn_Disp; > > begin > > =A0 null; > > end Test; > > > When I try to complie that with GNAT 4.6.1 I get the following error > > message: > > > test.adb:9:10: expected type "Parent_Access" defined at line 3 > > test.adb:9:10: found type access to "Parent'Class" defined at line 6 > > > which I don't really understand since type "Parent_Access" is type > > access to Parent'Class, isn't it? > > > Thanks in advance. > > Ada is a strongly typed language. =A0That means that you can have two > types that look exactly the same but are still different types, > because you've declared them as different types, and you can't just > use them interchangeably. =A0Example: Strong typing doesn't isn't quite the right explanation. Rather I think you want to say that Ada type equality and compatibility are defined in terms of static type names. There is also the rule that anonymous types are inequivalent to any other type. However, there exist languages that are strongly typed that don't rely (at least entirely) on name equivalence. Rather they use some variation of structural equivalence. ML is in this category.