IDL errors in Level 2

I just compiled the Level 2 DOM specification with a recent IDL
compiler, and noticed a number of problems.

1. Keywords are used as identifiers, namely:

   supports readOnly valueType object

   This did not get caught by earlier compilers for two reasons:
   a) supports and valuetype were added only in CORBA 2.3
   b) even though IDL was case insensitive all the time, compilers
      often did not check whether an identifier was the same as a
      keyword except for case.
   If possible, I recommend to rename these things.
   Otherwise, the escape mechanism introduced in CORBA 2.3 should be
   used: Keywords can be used as if prefixed with "_" (i.e. _supports,
   _readOnly, etc). The underscore only tells that this is meant as an
   identifier; in the programming languages, the underscore is removed
   (unless the name is a keywords in the programming language also).

2. range::Range (of range.idl) is ill-formed 2.3 IDL; a name must not
   be re-used in its immediate content. The rationale is that some
   languages (C++, Java) disallow using a name in the immediate scope
   of a class with the same name; 

   interface Foo{
     void Foo();
   };

   would not translate to C++, as Foo::Foo is the constructor, not a
   method named Foo.

Regards,
Martin

Received on Monday, 18 September 2000 10:19:56 UTC