From: eachus@linus.mitre.org (Robert I. Eachus)
Subject: Re: implicit array subtype conversion
Date: 30 Jul 90 18:11:53 GMT [thread overview]
Message-ID: <EACHUS.90Jul30141153@aries.linus.mitre.org> (raw)
In-Reply-To: 1990Jul27.135108.11518@planck.uucp
In article <1990Jul27.135108.11518@planck.uucp> acsu.buffalo.edu!planck!hercules!westley asks:
> However, the following is not. Why? I don't see the difference in the
> assignment of the string because both B and C.S are constrained.
This is a language bug, not a compiler bug... Sliding occurs on
assignment, but not in aggregate component matching. One of the
"utility" functions I keep around for when this occurs allows me to
say:
C := new STRING_RECORD'(Len => A'length, S => Slide(A));
where slide is defined as:
function Slide (S: in String; To: in Natural := 1) return String is
Temp: String(To..To + S'LENGTH - 1) := S;
begin
return Temp;
end Slide;
silly, but that's the way the language currently works.
Complete question, included for completeness:
In my zeal to limit my example and the size of the posting concerning
implict array subtype conversion, I inadvertently changed the nature of my
problem slightly.
I have defined a dynamic length string as follows:
type STRING_RECORD (Len : NATURAL) is
record
S : Standard.STRING(1..Len);
end record;
type STRING is access STRING_RECORD;
Then, I declare some variables:
A : Standard.STRING(7..7);
B : Standard.STRING(1..1);
C : STRING;
The following is accepted by the compiler (Verdix Sun 4 Self, version
6.0.2(g)) because of implicit array subtype conversion:
A := "X";
B := A;
However, the following is not. Why? I don't see the difference in the
assignment of the string because both B and C.S are constrained.
C := new STRING_RECORD'(Len => A'length, S => A);
--
Robert I. Eachus
with STANDARD_DISCLAIMER;
use STANDARD_DISCLAIMER;
function MESSAGE (TEXT: in CLEVER_IDEAS) return BETTER_IDEAS is...
prev parent reply other threads:[~1990-07-30 18:11 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
1990-07-27 13:51 implicit array subtype conversion
1990-07-30 18:11 ` Robert I. Eachus [this message]
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox