このメールは
Van Snyder <[log in to unmask]>
さんのメールに対する返信です。
> So the appearance of that name shouldn't count as an attempt to
> "access" the name of the private binding.
I agree - of course it does not.
This doesn't have anything much to do with the original question though.
...
> I think you can override a private binding in a different module from
> the one containing the base type's definition,
I don't.
Overriding a binding occurs precisely when the PROCEDURE statement
is used on an inherited binding. Outside the original module,
you cannot specify the private name (because outside the original
module it is NOT a private name), so you cannot override it.
Being able to override stuff you cannot access would be a serious
breach of design principles. I hope we've not done that!
> and I think you can
> create a new entity in a using scoping unit having the same name as a
> private entity in a used module
もちろんでございます。
This is exactly the defined effect of PRIVATE so I'd hope so.
(Perhaps I'm being a bit unfair here, you're probably just talking
about type components and type-bound procedures, but you stated it
as the general principle that it is. I don't recall making any
exception to that in these particular cases though.)
> If there's controversy, maybe we need an official interpretation whether
> overriding a private binding in a different module from the one
> containing the base type's definition constitutes access to the private
> name, and is therefore forbidden, or it doesn't constitute an access and
> is therefore allowed.
I think that outside the module you can't specify it, so you can't
(a) reference it
or
(b) override it.
It's probably easier to discuss any example you have in mind over
breakfast than a worldwide email list though. See you later!
Cheers,
--
..............Malcolm Cohen (Nihon NAG, Tokyo, Japan).
|