String#bytesplice should return self
In Feature #19314, we concluded that the return value of String#bytesplice should be changed from the source string to the receiver, because the source string is useless and confusing when extra arguments are added. This change should be included in Ruby 3.2.1.
This commit is contained in:
parent
4b42392f8e
commit
f7b72462aa
4
string.c
4
string.c
@ -6268,7 +6268,7 @@ rb_str_byteslice(int argc, VALUE *argv, VALUE str)
|
||||
* bytesplice(index, length, str) -> string
|
||||
* bytesplice(range, str) -> string
|
||||
*
|
||||
* Replaces some or all of the content of +self+ with +str+, and returns +str+.
|
||||
* Replaces some or all of the content of +self+ with +str+, and returns +self+.
|
||||
* The portion of the string affected is determined using
|
||||
* the same criteria as String#byteslice, except that +length+ cannot be omitted.
|
||||
* If the replacement string is not the same length as the text it is replacing,
|
||||
@ -6330,7 +6330,7 @@ rb_str_bytesplice(int argc, VALUE *argv, VALUE str)
|
||||
cr = ENC_CODERANGE_AND(ENC_CODERANGE(str), ENC_CODERANGE(val));
|
||||
if (cr != ENC_CODERANGE_BROKEN)
|
||||
ENC_CODERANGE_SET(str, cr);
|
||||
return val;
|
||||
return str;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -3489,7 +3489,7 @@ CODE
|
||||
private
|
||||
|
||||
def assert_bytesplice_result(expected, s, *args)
|
||||
assert_equal(args.last, s.send(:bytesplice, *args))
|
||||
assert_equal(expected, s.send(:bytesplice, *args))
|
||||
assert_equal(expected, s)
|
||||
end
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user