Skip to content

Commit 0c2f9a0

Browse files
authored
fix: empty collection remove (#324)
1 parent dc587cd commit 0c2f9a0

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

src/codegen/sdk/core/symbol_groups/collection.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ def remove(self, value: Child | None = None, *args, **kwargs) -> None:
112112
# For example, let's remove all occurrences of the value instead of just the first one
113113
if value is None:
114114
super().remove(*args, **kwargs)
115+
Editable.remove(self, *args, **kwargs)
115116
else:
116117
value.remove(*args, **kwargs)
117118

tests/unit/codegen/sdk/typescript/expressions/ternary_expression/test_ternary_reduce_condition.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,3 +266,32 @@ def test_reduce_ternary_condition_with_dict_trailing_comma(tmpdir):
266266
}
267267
"""
268268
)
269+
270+
271+
def test_reduce_ternary_condition_with_empty_arrays(tmpdir):
272+
# language=typescript
273+
content = """
274+
function foo(): string[] {
275+
let result = condition ? [] : ['value'];
276+
let result2 = condition ? ['value'] : [];
277+
return result.concat(result2);
278+
}
279+
"""
280+
with get_codebase_session(tmpdir=tmpdir, files={"dir/file1.ts": content}, programming_language=ProgrammingLanguage.TYPESCRIPT) as codebase:
281+
file: TSFile = codebase.get_file("dir/file1.ts")
282+
foo = file.get_function("foo")
283+
ternary1 = foo.code_block.statements[0].value
284+
ternary2 = foo.code_block.statements[1].value
285+
ternary1.reduce_condition(True)
286+
ternary2.reduce_condition(False)
287+
# language=typescript
288+
assert (
289+
file.content
290+
== """
291+
function foo(): string[] {
292+
let result = [];
293+
let result2 = [];
294+
return result.concat(result2);
295+
}
296+
"""
297+
)

0 commit comments

Comments
 (0)