comp.lang.ada
 help / color / mirror / Atom feed
From: bobduff@world.std.com (Robert A Duff)
Subject: Re: Which compiler is correct?
Date: 1997/06/18
Date: 1997-06-18T00:00:00+00:00	[thread overview]
Message-ID: <EBz083.9EB@world.std.com> (raw)
In-Reply-To: 33A77C54.5484@bix.com


In article <33A77C54.5484@bix.com>, Tom Moran  <tmoran@bix.com> wrote:
>Compilers G and J accept this code.  Compiler O gives the error message
>indicted in the comment, on said line.  Which is correct Ada?

Compiler O is correct.  The inherited i component of type y is
implicitly declared within the private part of a.b.  Since a.c cannot
see this implicit declaration, the i component of z is never implicitly
declared (although it still exists at run time, and you can get at it by
doing "x(two).i").

The rules for this stuff are somewhat arcane.  See 3.4 and 7.3.1.

>package a is
>    type x is tagged private;
>private
>    type x is tagged record
>        i:integer;
>    end record;
>end a;
>package a.b is
>    type y is new x with private;
>private
>    type y is new x with record 
>        j:integer;
>    end record;
>end a.b;
>with a.b;
>package a.c is
>    type z is new a.b.y with private;
>    procedure p;
>private
>    type z is new a.b.y with record
>        k:integer;
>    end record;
>end a.c;
>package body a.c is
>    procedure p is
>       one:x;
>       two:z;
>    begin
>        one.i:=1;
>        two.k:=2;
>        two.i:=3;   -- test_vis.ada: Error: line 31 col 13 LRM:4.1.3(5),
>No possible interpretation for selected component i, Ignoring future
>references 
>
>    end p;
>end a.c;

- Bob




  parent reply	other threads:[~1997-06-18  0:00 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-06-17  0:00 Which compiler is correct? Tom Moran
1997-06-18  0:00 ` Pascal Obry
1997-06-18  0:00   ` Tom Moran
1997-06-18  0:00 ` Robert A Duff [this message]
1997-06-18  0:00   ` John Woodruff
1997-06-19  0:00     ` Robert A Duff
1997-06-20  0:00     ` Jon S Anthony
1997-06-21  0:00       ` Robert A Duff
1997-06-26  0:00         ` Jon S Anthony
1997-06-19  0:00   ` Simon Wright
1997-06-20  0:00     ` Jon S Anthony
1997-06-21  0:00       ` Robert A Duff
1997-06-21  0:00     ` Robert A Duff
1997-06-21  0:00       ` Simon Wright
1997-06-23  0:00       ` Mats.Weber
1997-06-24  0:00         ` Jon S Anthony
  -- strict thread matches above, loose matches on Subject: below --
1996-09-10  0:00 Which compiler is correct?? Robert B. Love 
1996-09-10  0:00 ` Robert Dewar
1996-09-10  0:00 ` Robert Dewar
1996-09-11  0:00   ` Robert B. Love 
1996-09-11  0:00 ` Jon S Anthony
1996-09-11  0:00 ` Robert A Duff
1996-09-12  0:00   ` Ken Cowan
1996-09-12  0:00   ` Ken Cowan
1996-09-13  0:00   ` Jon S Anthony
1996-09-12  0:00 ` Tucker Taft
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox