Merge pull request #2309 from mitza-oci/warnings
[ACE_TAO.git] / TAO / tests / IDL_Test / fwd.idl
bloba30c50200417c9ba07634b4231588ca8b5dff16d
2 //=============================================================================
3 /**
4 * @file fwd.idl
6 * This file contains examples of IDL code that has
7 * caused problems in the past for the TAO IDL
8 * compiler. This test is to make sure the problems
9 * stay fixed.
12 * @author Jeff Parsons <parsons@cs.wustl.edu> and TAO users.
14 //=============================================================================
17 // This file, along with its companion full.idl, test the
18 // handling of forward interface declarations that are
19 // not defined in the same IDL file. The two files have
20 // mutually dependent interfaces. It is no longer necessary
21 // for such ILD files to include each other, as long as
22 // they are part of the same build.
24 module scope_test
26 interface i_scope_test;
29 module scope_test
31 struct same_scope_struct
33 i_scope_test same_scope_member;
37 module mod2
39 struct scope_struct
41 scope_test::i_scope_test ss_member;
44 interface fwd;
46 exception exp
48 fwd fwd_mem;
51 typedef fwd td_fwd;
53 interface full
55 fwd op (in fwd inarg,
56 inout fwd inoutarg,
57 out fwd outarg);
60 typedef sequence<full, 5> full_seq2;
62 interface fwd;
65 // Tests a bug where code generation for an interface
66 // which was forward declared, then fully defined with
67 // both concrete and abstract parents caused the IDL
68 // compiler to crash.
69 module fwd_mixed_intf
71 interface mixed_parents;
73 interface concrete_parent {};
75 abstract interface abstract_parent {};
77 interface mixed_abs_first : abstract_parent, concrete_parent {};
78 interface mixed_conc_first : concrete_parent, abstract_parent {};
81 // Tests a bug found when the scope traversal was fixed. Forwarded valuetypes
82 // have some different syntax supplied when used as initialization arguments
83 // or in marshaling. This generated code did not compile.
84 module obv_fwd
86 valuetype ForwardedType;
89 module obv_fwd
91 valuetype EnclosingType
93 public ::obv_fwd::ForwardedType forwarded;
97 module obv_fwd
99 valuetype ForwardedType
101 public long number;