Skip to content

Commit 4c69628

Browse files
committed
test: fix basic string replacement
Let's do the string replacement upfront to get it out of the way. Else if remove_defaults_impl returns None, the name might not always be cleaned up
1 parent bafb4b0 commit 4c69628

File tree

1 file changed

+3
-9
lines changed

1 file changed

+3
-9
lines changed

src/pygccxml/declarations/container_traits.py

+3-9
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ def __init__(self, unordered_maps_and_sets):
3838
def normalize(self, type_str):
3939
return type_str.replace(' ', '')
4040

41-
def replace_basic_string(self, cls_name):
41+
@staticmethod
42+
def replace_basic_string(cls_name):
4243
strings = {
4344
"std::string": string_equivalences,
4445
"std::wstring": wstring_equivalences
@@ -48,7 +49,6 @@ def replace_basic_string(self, cls_name):
4849
for short_name, long_names in strings.items():
4950
for lname in long_names:
5051
new_name = new_name.replace(lname, short_name)
51-
5252
return new_name
5353

5454
def decorated_call_prefix(self, cls_name, text, doit):
@@ -99,7 +99,6 @@ def erase_recursive(self, cls_name):
9999
return self.no_end_const(cls_name)
100100

101101
def erase_allocator(self, cls_name, default_allocator='std::allocator'):
102-
cls_name = self.replace_basic_string(cls_name)
103102
c_name, c_args = templates.split(cls_name)
104103
if len(c_args) != 2:
105104
return
@@ -116,7 +115,6 @@ def erase_allocator(self, cls_name, default_allocator='std::allocator'):
116115
c_name, [self.erase_recursive(value_type)])
117116

118117
def erase_container(self, cls_name, default_container_name='std::deque'):
119-
cls_name = self.replace_basic_string(cls_name)
120118
c_name, c_args = templates.split(cls_name)
121119
if len(c_args) != 2:
122120
return
@@ -132,7 +130,6 @@ def erase_container_compare(
132130
cls_name,
133131
default_container_name='std::vector',
134132
default_compare='std::less'):
135-
cls_name = self.replace_basic_string(cls_name)
136133
c_name, c_args = templates.split(cls_name)
137134
if len(c_args) != 3:
138135
return
@@ -152,7 +149,6 @@ def erase_compare_allocator(
152149
cls_name,
153150
default_compare='std::less',
154151
default_allocator='std::allocator'):
155-
cls_name = self.replace_basic_string(cls_name)
156152
c_name, c_args = templates.split(cls_name)
157153
if len(c_args) != 3:
158154
return
@@ -175,7 +171,6 @@ def erase_map_compare_allocator(
175171
cls_name,
176172
default_compare='std::less',
177173
default_allocator='std::allocator'):
178-
cls_name = self.replace_basic_string(cls_name)
179174
c_name, c_args = templates.split(cls_name)
180175
if len(c_args) != 4:
181176
return
@@ -205,7 +200,6 @@ def erase_map_compare_allocator(
205200
self.erase_recursive(mapped_type)])
206201

207202
def erase_hash_allocator(self, cls_name):
208-
cls_name = self.replace_basic_string(cls_name)
209203
c_name, c_args = templates.split(cls_name)
210204
if len(c_args) < 3:
211205
return
@@ -243,7 +237,6 @@ def erase_hash_allocator(self, cls_name):
243237
c_name, [self.erase_recursive(value_type)])
244238

245239
def erase_hashmap_compare_allocator(self, cls_name):
246-
cls_name = self.replace_basic_string(cls_name)
247240
c_name, c_args = templates.split(cls_name)
248241

249242
if self.unordered_maps_and_sets:
@@ -523,6 +516,7 @@ def remove_defaults(self, type_or_string):
523516
name = type_or_string
524517
if not isinstance(type_or_string, str):
525518
name = self.class_declaration(type_or_string).name
519+
name = defaults_eraser.replace_basic_string(name)
526520
if not self.remove_defaults_impl:
527521
return name
528522
no_defaults = self.remove_defaults_impl(name)

0 commit comments

Comments
 (0)