// Test rename overriding a wildcard rename %module rename_wildcard %rename(mm1) *::m1; %rename(mm2) *::m2; %rename(tt2) *::t2; %rename(mm3) *::m3(); %rename(tt3) *::t3(); %rename(m_4) m4; %rename(t_4) t4; %rename(mm4) *::m4; %rename(tt4) *::t4; %rename(mm5) *::m5; %rename(tt5) *::t5; %rename(opint) *::operator int; %rename(opdouble) *::operator double; // No declaration %rename(mm2a) GlobalWildStruct::m2; %rename(mm2b) GlobalWildTemplateStruct::m2; %rename(mm2c) Space::SpaceWildStruct::m2; %rename(mm2d) Space::SpaceWildTemplateStruct::m2; %rename(tt2b) GlobalWildTemplateStruct::t2; %rename(tt2d) Space::SpaceWildTemplateStruct::t2; // With declaration %rename(mm3a) GlobalWildStruct::m3; %rename(mm3b) GlobalWildTemplateStruct::m3; %rename(mm3c) Space::SpaceWildStruct::m3; %rename(mm3d) Space::SpaceWildTemplateStruct::m3; %rename(tt3b) GlobalWildTemplateStruct::t3; %rename(tt3d) Space::SpaceWildTemplateStruct::t3; // Global override too %rename(mm4a) GlobalWildStruct::m4; %rename(mm4b) GlobalWildTemplateStruct::m4; %rename(mm4c) Space::SpaceWildStruct::m4; %rename(mm4d) Space::SpaceWildTemplateStruct::m4; %rename(tt4b) GlobalWildTemplateStruct::t4; %rename(tt4d) Space::SpaceWildTemplateStruct::t4; // %extend renames %extend GlobalWildStruct { %rename(mm5a) m5; } %extend GlobalWildTemplateStruct { %rename(mm5b) m5; } %extend GlobalWildTemplateStruct { %rename(tt5b) t5; } namespace Space { %extend SpaceWildStruct { %rename(mm5c) m5; } %extend SpaceWildTemplateStruct { %rename(mm5d) m5; } %extend SpaceWildTemplateStruct { %rename(tt5d) t5; } } // operators %rename(opinta) GlobalWildStruct::operator int; %rename(opintb) GlobalWildTemplateStruct::operator int; %rename(opintc) Space::SpaceWildStruct::operator int; %rename(opintd) Space::SpaceWildTemplateStruct::operator int; %rename(opdoubleb) GlobalWildTemplateStruct::operator double; %rename(opdoubled) Space::SpaceWildTemplateStruct::operator double; %inline %{ struct GlobalWildStruct { void m1() {} void m2() {} void m3() {} void m4() {} void m5() {} operator int() { return 0; } }; template struct GlobalWildTemplateStruct { void m1() {} void m2() {} void t2() {} void m3() {} void t3() {} void m4() {} void t4() {} void m5() {} void t5() {} operator int() { return 0; } operator double() { return 0.0; } }; namespace Space { struct SpaceWildStruct { void m1() {} void m2() {} void m3() {} void m4() {} void m5() {} operator int() { return 0; } }; template struct SpaceWildTemplateStruct { void m1() {} void m2() {} void t2() {} void m3() {} void t3() {} void m4() {} void t4() {} void m5() {} void t5() {} operator int() { return 0; } operator double() { return 0.0; } }; } // Wild card renames expected for these struct NoChangeStruct { void m1() {} void m2() {} void m3() {} void m4() {} void m5() {} operator int() { return 0; } }; namespace Space { struct SpaceNoChangeStruct { void m1() {} void m2() {} void m3() {} void m4() {} void m5() {} operator int() { return 0; } }; } %} %template(GlobalWildTemplateStructInt) GlobalWildTemplateStruct; %template(SpaceWildTemplateStructInt) Space::SpaceWildTemplateStruct;