autofree: string.replace() test

pull/6666/head
Alexander Medvednikov 2020-10-21 19:44:31 +02:00
parent 019e3b2f4a
commit 6d11caf784
2 changed files with 11 additions and 2 deletions

View File

@ -183,6 +183,11 @@ pub fn (s string) replace(rep string, with string) string {
// TODO PERF Allocating ints is expensive. Should be a stack array
// Get locations of all reps within this string
mut idxs := []int{}
defer {
unsafe {
idxs.free()
}
}
mut idx := 0
for {
idx = s.index_after(rep, idx)

View File

@ -61,12 +61,16 @@ fn str_inter() {
}
fn str_replace() {
s := 'hello world'
mut s := 'hello world'
s = s.replace('hello', 'hi')
println(s)
/*
r := s.replace('hello', 'hi')
cloned := s.replace('hello', 'hi').clone()
cloned2 := r.clone()
println(s)
println(r)
*/
}
fn reassign_str() {
@ -154,7 +158,7 @@ fn main() {
reassign_str()
optional_str()
optional_return()
// str_replace()
str_replace()
if_cond()
addition_with_tmp_expr()
println('end')