[omniORB] IDL formal parameter name clash

Brian Wallis brian.wallis at ot.com.au
Tue May 3 12:41:15 BST 2005


On Friday 29 April 2005 9:00 pm, Duncan Grisby <duncan at grisby.org> wrote:
> omniidl is correct. Using the module name introduces it into the scope
> of the operation parameters. See section 3.15.2 of the CORBA 2.6 spec.
> It says:

Hmm. I did read that section and wondered if it applied to formal parameter 
names. I'm not convinced that it does. 

Does the formal parameter name introduce a name into the scope that can be 
used for anything? I thought formal parameter names are just a placeholder in 
the IDL. 

I've tried a number of other IDL compilers (TAO 1.4.4, JDK 1.4.2 and 1.5 idlj, 
fnorb fnidl 1.3) that are happy with this. Orbix 2000 1.2.3 on the other hand 
gets an error.

But on testing, If I modify the IDL like so:

module aSAP {
  typedef long ASAP_T;
};

interface Test {
  void getASAP(
    in string aSAPName,
    out ::aSAP::ASAP_T aSAP);
};

ie: explicitly scope the aSAP module to global scope then everyone is happy 
including omniORB. I suppose that in this case the aSAP module name is not 
introduced into that scope?

All somewhat beside the point since I shouldn't need to modify IDL that is 
part of a published standard (TMF814). Perhaps I need to bug report this to 
the TMF.
 
-- 
brian wallis...
Open Telecommunications
http://www.ot.com.au/



More information about the omniORB-list mailing list