[omniORB] IDL name clashes
Craig Rodrigues
rodrigc@mediaone.net
Tue, 5 Sep 2000 12:26:17 -0400
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