diff options
Diffstat (limited to 'ACE/TAO/tests/IDL_Test/fwd.idl')
-rw-r--r-- | ACE/TAO/tests/IDL_Test/fwd.idl | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/ACE/TAO/tests/IDL_Test/fwd.idl b/ACE/TAO/tests/IDL_Test/fwd.idl new file mode 100644 index 00000000000..ddfb13adde0 --- /dev/null +++ b/ACE/TAO/tests/IDL_Test/fwd.idl @@ -0,0 +1,85 @@ +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// TAO/tests/IDL_Test +// +// = FILENAME +// fwd.idl +// +// = DESCRIPTION +// This file contains examples of IDL code that has +// caused problems in the past for the TAO IDL +// compiler. This test is to make sure the problems +// stay fixed. +// +// = AUTHORS +// Jeff Parsons <parsons@cs.wustl.edu> and TAO users. +// +// ============================================================================ + +// This file, along with its companion full.idl, test the +// handling of forward interface declarations that are +// not defined in the same IDL file. The two files have +// mutually dependent interfaces. It is no longer necessary +// for such ILD files to include each other, as long as +// they are part of the same build. + +module scope_test +{ + interface i_scope_test; +}; + +module scope_test +{ + struct same_scope_struct + { + i_scope_test same_scope_member; + }; +}; + +module mod2 +{ + struct scope_struct + { + scope_test::i_scope_test ss_member; + }; + + interface fwd; + + exception exp + { + fwd fwd_mem; + }; + + typedef fwd td_fwd; + + interface full + { + fwd op (in fwd inarg, + inout fwd inoutarg, + out fwd outarg); + }; + + typedef sequence<full, 5> full_seq2; + + interface fwd; +}; + +// Tests a bug where code generation for an interface +// which was forward declared, then fully defined with +// both concrete and abstract parents caused the IDL +// compiler to crash. +module fwd_mixed_intf +{ + interface mixed_parents; + + interface concrete_parent {}; + + abstract interface abstract_parent {}; + + interface mixed_abs_first : abstract_parent, concrete_parent {}; + interface mixed_conc_first : concrete_parent, abstract_parent {}; +}; + |