From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Extension of non-limited type needs limited component
Date: Fri, 15 Nov 2002 21:54:04 -0600
Date: 2002-11-15T21:54:04-06:00 [thread overview]
Message-ID: <utbgajk5n588d@corp.supernews.com> (raw)
In-Reply-To: wcck7je8qa1.fsf@shell01.TheWorld.com
Robert A Duff wrote in message ...
>"Randy Brukardt" <randy@rrsoftware.com> writes:
>> I don't recall why you are not allowed to make the extension of the
>> limited type non-limited. (I didn't find anything in the AARM on this
>> subject.)
>
>I don't think it would work, because ":=" on a derived type copies the
>parent part, which is limited, and therefore not copyable:
>...
>The assignment above is copying a task, which is bad news. It is also
>copying an access discriminant, which is bad news. Also, the component
>Self of X is supposed to point at X, and the assignment defeats that.
I knew there was a reason, I just couldn't figure out what it was. I'm
surprised that this discussion is not in the AARM, because it is such a
restrictive rule that you'd think that there would have been a
justification for it somewhere.
>I suppose it could work if all ancestor limited types are not private.
>Then we could add a rule saying that deriving a new non-limited type is
>OK if the ancestor types *could have been* non-limited -- that is, they
>don't violate any of the rules for non-limited types (e.g., no access
>discriminants allowed).
>
>But that would be a rather severe restriction -- I *want* most of my
>types to be private.
No, that's not going to work. And, of course, breaking privateness would
also be a bad idea (even though it would work in this case.
>Here's another alternative: you could invent a new kind of type --
>"pseudo-limited". A pseudo-limited type disallows assignment
>statements, but *also* disallows all the things disallowed for
>non-limited types. A pseudo-limited type can have pseudo-limited
>components, and non-limited components, but not limited components.
>Then you could have a hierarchy with the root of the tree
>pseudo-limited, with some subbranches being limited and some
non-limited
>(and some pseudo-limited).
That would work, I think.
>Sounds complicated. I haven't thought it through, so I'm not at all
>sure it even works.
But I have to agree with the 'sounds complicated'. I doubt that this
problem is severe enough to justify a solution like this. (We've had
other problems with simpler solutions shot down, after all.)
Randy.
next prev parent reply other threads:[~2002-11-16 3:54 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-11-13 10:03 Extension of non-limited type needs limited component Mike
2002-11-13 12:06 ` Jean-Pierre Rosen
2002-11-14 9:26 ` Mike
2002-11-14 11:43 ` David C. Hoos, Sr.
2002-11-14 12:33 ` Jean-Pierre Rosen
2002-11-14 14:27 ` Dmitry A. Kazakov
2002-11-14 19:25 ` Randy Brukardt
2002-11-15 10:04 ` Dmitry A. Kazakov
2002-11-15 22:09 ` Robert A Duff
2002-11-16 12:39 ` Dmitry A. Kazakov
2002-11-16 16:15 ` Robert A Duff
2002-11-17 11:14 ` Dmitry A. Kazakov
2002-11-17 12:26 ` Dale Stanbrough
2002-11-18 20:33 ` Randy Brukardt
2002-11-18 21:48 ` Eric
2002-11-19 14:38 ` Eric
2002-11-15 21:41 ` Robert A Duff
2002-11-16 3:54 ` Randy Brukardt [this message]
2002-11-15 0:30 ` Robert A Duff
2002-11-15 10:22 ` Dmitry A. Kazakov
2002-11-15 21:56 ` Robert A Duff
2002-11-16 12:39 ` Dmitry A. Kazakov
2002-11-14 23:39 ` Robert A Duff
2002-11-15 21:51 ` Mike
2002-11-13 14:28 ` Robert A Duff
2002-11-14 9:33 ` Mike
2002-11-14 9:35 ` Lutz Donnerhacke
2002-11-14 21:41 ` Robert A Duff
-- strict thread matches above, loose matches on Subject: below --
2002-11-15 10:47 Grein, Christoph
2002-11-15 12:12 ` Dmitry A. Kazakov
2002-11-15 13:29 ` Jean-Pierre Rosen
2002-11-15 14:34 ` Dmitry A. Kazakov
2002-11-15 21:26 ` Robert A Duff
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox