[Fwd: Re: [omniORB] IDL name clashes]

Richard Gruet rgruet@ina.fr
Wed, 06 Sep 2000 10:10:37 +0100



-------- Original Message --------
Subject: Re: [omniORB] IDL name clashes
Date: Wed, 06 Sep 2000 10:08:35 +0100
From: Richard Gruet <rgruet@ina.fr>
Reply-To: rgruet@ina.fr
Organization: INA
To: Craig Rodrigues <rodrigc@mediaone.net>
References: <39B523AE.447C307D@ina.fr>
<20000905122617.A2498@mediaone.net>

Craig,

OK, I already knew that rule, but it does not clarify my point. Is it or
not
allowed in IDL to use SAME identifiers (or differing only by case) in
DIFFERENT
scopes ? I could interpret the section 3.2.3 of the CORBA 2.3
specification that
you quote as concerning only identifiers in the SAME scope. And your
example
doesn't illustrate my specific question.

What do you think ? Any other advice (eg from the omniidl gurus) ?

Richard Gruet

Craig Rodrigues wrote:

> On Tue, Sep 05, 2000 at 05:47:42PM +0100, Richard Gruet wrote:
> > Hi omniORBers,
> >
> > When compiling the following IDL:
> >
> > module m {
> >     interface M {
> > };
> > };
>
> Your IDL is buggy, omniidl is doing the right thing.
>
> (Other IDL compilers like JavaIDL and Visibroker 3.3 don't pick up this bug.)
>
>  From section 3.2.3 of the CORBA 2.3 specification:
>
>  " When comparing two identifiers to see if they collide:
>    Upper- and lower-case letters are treated as the same letter.   Table 3-2
> +defines the equivalence mapping of upper- and lower-case letters.   All
> +characters are significant.  Identifiers that differ only in case   collide,
>  and will yield a compilation error under certain circumstances.   An
> +identifier for a given definition must be spelled identically   (e.g., with
> +respect to case) throughout a specification.
>
>  module M {
>    typedef long Foo;
>    const long thing = 1;
>    interface thing { // error: reuse of identifier
>    void doit (
>        in Foo foo // error: Foo and foo collide and refer to
>                    // different things
>              );
>    readonly attribute long Attribute; // error: Attribute collides with
> // keyword attribute
>    };
>  };
> --
> Craig Rodrigues
> http://www.gis.net/~craigr
> rodrigc@mediaone.net