[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