comp.lang.ada
 help / color / mirror / Atom feed
From: paul williams <paul_williams@itd.sterling.com>
Subject: Why must access to unconstrained array statically match?
Date: 1996/11/18
Date: 1996-11-18T00:00:00+00:00	[thread overview]
Message-ID: <3290EBC7.4065@itd.sterling.com> (raw)


Given the following code sample:
--------------------------------------------------------
package A is
    type An_Array is array (Positive range <>) of Integer;
    type An_Array_Ptr is access all An_Array;
    
    The_Array : aliased An_Array (1..10);
    The_Ptr : An_Array_Ptr := The_Array'Access;
end A;
--------------------------------------------------------
We get an error at compile time that says:

  "subtype of The_Array does not statically match
   designated subtype An_Array [RM_95 3.10.2(27)]"

RM95 3.10.2 says:
"...The view denoted by the prefix X shall satisfy the 
following additional requirements, presuming the expected 
type for X'Access is the general access type A: 
...
(27) ... if A's designated type is not tagged, then the 
type of the view shall be the same, and either A's 
designated subtype shall statically match the nominal 
subtype of the view, or the designated subtype shall be 
discriminated and unconstrained;"

Sorry for the length of this, but can anyone tell me why 
this is prohibited?  The designated subtype is 
unconstrained (An_Array), so why can't I get the pointer 
to an aliased view of a constrained variable?  Does this 
have something to do with the restriction on discriminated 
records that the rationale mentions "which ensures that we 
cannot apply the Access attribute to a component that 
might disappear"? I don't get the connection.

-- 
regards, paul

"making the complex simple, that's creativity!" - unknown




             reply	other threads:[~1996-11-18  0:00 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-11-18  0:00 paul williams [this message]
1996-11-20  0:00 ` Why must access to unconstrained array statically match? Robert Dewar
replies disabled

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