-
Key: CORBA24-84
-
Legacy Issue Number: 3525
-
Status: closed
-
Source: Triodia Technologies Pty Ltd ( Michi Henning)
-
Summary:
On page 3-46, CORBA 2.3, we have some old words that got forgotten during
the scope resolution rule cleanup we did some time ago:Inheritance produces shadow copies of the inherited identifiers;
that is, it introduces names into the derived interface, but these
names are considered to be semantically the same as the original
definition. Two shadow copies of the same original (as results
from the diamond shape in Figure 3-1 on page 3-21) introduce a
single name into the derived interface and don't conflict with
each other.That's wrong because it confuses visibility of an identifier with introduction
of an identifier (which are different things). I would suggest to reword
as follows:Inheritance produces shadow copies of the inherited identifiers;
that is, inherited identifiers are visible in derived interfaces.
Such identifiers are considered to be semantically the same as
the original definition. Two shadow copies of the same original (as
results from the diamond shape in Figure 3-1 on page 3-21) do
not conflict with each other.This simply gets rid of the word "introduces", which has the wrong meaning.
Note that these words have been wrong all along, even before we changed
the name lookup rules. That's because, if inherited identifiers were
indeed introduced into the derived interface, the following would be illegal
(but has in fact never been illegal):interface B
{ typedef string S; };
interface D : B
{ typedef long S; };
-
Reported: CORBA 2.3.1 — Fri, 31 Mar 2000 05:00 GMT
-
Disposition: Resolved — CORBA 2.4
-
Disposition Summary:
Fix as suggested below
-
Updated: Fri, 6 Mar 2015 20:58 GMT