diff --git a/src/codegen/sdk/core/symbol_groups/collection.py b/src/codegen/sdk/core/symbol_groups/collection.py index 62122331f..08e210b7b 100644 --- a/src/codegen/sdk/core/symbol_groups/collection.py +++ b/src/codegen/sdk/core/symbol_groups/collection.py @@ -112,6 +112,7 @@ def remove(self, value: Child | None = None, *args, **kwargs) -> None: # For example, let's remove all occurrences of the value instead of just the first one if value is None: super().remove(*args, **kwargs) + Editable.remove(self, *args, **kwargs) else: value.remove(*args, **kwargs) diff --git a/tests/unit/codegen/sdk/typescript/expressions/ternary_expression/test_ternary_reduce_condition.py b/tests/unit/codegen/sdk/typescript/expressions/ternary_expression/test_ternary_reduce_condition.py index fac383111..b1383acef 100644 --- a/tests/unit/codegen/sdk/typescript/expressions/ternary_expression/test_ternary_reduce_condition.py +++ b/tests/unit/codegen/sdk/typescript/expressions/ternary_expression/test_ternary_reduce_condition.py @@ -266,3 +266,32 @@ def test_reduce_ternary_condition_with_dict_trailing_comma(tmpdir): } """ ) + + +def test_reduce_ternary_condition_with_empty_arrays(tmpdir): + # language=typescript + content = """ +function foo(): string[] { + let result = condition ? [] : ['value']; + let result2 = condition ? ['value'] : []; + return result.concat(result2); +} +""" + with get_codebase_session(tmpdir=tmpdir, files={"dir/file1.ts": content}, programming_language=ProgrammingLanguage.TYPESCRIPT) as codebase: + file: TSFile = codebase.get_file("dir/file1.ts") + foo = file.get_function("foo") + ternary1 = foo.code_block.statements[0].value + ternary2 = foo.code_block.statements[1].value + ternary1.reduce_condition(True) + ternary2.reduce_condition(False) + # language=typescript + assert ( + file.content + == """ +function foo(): string[] { + let result = []; + let result2 = []; + return result.concat(result2); +} +""" + )