%module namespace_nested %warnfilter(801) hello::hi::hi0; /* Ruby, wrong class name */ %warnfilter(801) oss::hi1; /* Ruby, wrong class name */ %inline %{ namespace hello { namespace hi { struct hi0 { }; } template struct Hi : _T1 { }; } %} namespace hello { %template(Hi_hi0) Hi; } %inline %{ namespace hello { // // This works // // typedef Hi Hi0; // // This doesn't work // typedef Hi Hi0; }; namespace oss { template struct hi1 : _T { }; } %} namespace oss { %template(hi1_hi0) hi1; }