CORBA 2.4 MAILINGLIST Avatar
  1. OMG Issue

CORBA24 — Inheritance description incorrect

  • 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