Skip to content

Commit 52ecb5f

Browse files
committed
fixed empty string case
1 parent 416a6f4 commit 52ecb5f

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

integration_tests/test_str_01.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,10 @@ def test_str_split():
115115
# assert res6 == [""]
116116

117117
def test_str_replace():
118+
x: str = "abc"
118119
a: str = "zzaaabracadabra"
120+
print(x.replace("", ","))
121+
print(a.replace("a",""))
119122
print(a.replace("",""))
120123
print(a.replace("a","b"))
121124
print(a.replace("e","a"))
@@ -136,6 +139,7 @@ def test_str_replace():
136139
print(a.replace("b","k",1))
137140
print(a.replace("b","k",2))
138141
print(a.replace("zza","yo",2))
142+
assert a.replace("a","") == "zzbrcdbr"
139143
assert a.replace("","") == "zzaaabracadabra"
140144
assert a.replace("a","b") == "zzbbbbrbcbdbbrb"
141145
assert a.replace("e","a") == "zzaaabracadabra"
@@ -156,6 +160,8 @@ def test_str_replace():
156160
assert a.replace("b","k",1) == "zzaaakracadabra"
157161
assert a.replace("b","k",2) == "zzaaakracadakra"
158162
assert a.replace("zza","yo",2) == "yoaabracadabra"
163+
assert x.replace("", ",") == ",a,b,c,"
164+
159165

160166
def check():
161167
f()

src/runtime/lpython_builtin.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -917,12 +917,6 @@ def _lpython_str_split(x: str, sep:str) -> list[str]:
917917

918918
@overload
919919
def _lpython_str_replace(x: str, old:str, new:str) -> str:
920-
if (old == ""):
921-
res: str = ""
922-
i: str
923-
for i in x:
924-
res += new + i
925-
return res
926920
return _lpython_str_replace(x, old, new, len(x))
927921

928922

@@ -933,7 +927,7 @@ def _lpython_str_replace(x: str, old:str, new:str, count: i32) -> str:
933927
s: str
934928
for s in x:
935929
res1 += new + s
936-
return res1
930+
return res1 + new
937931
res: str = ""
938932
i: i32 = 0
939933
ind: i32 = -1

0 commit comments

Comments
 (0)