Fixed the corner case bug in String#{gsub!,sub!}.

`"a".sub!("a", "a")` should not return `nil`.
This commit is contained in:
Yukihiro "Matz" Matsumoto
2018-08-07 23:01:22 +09:00
parent 54246db00a
commit 35be8b2524
+2 -2
View File
@@ -99,7 +99,7 @@ class String
raise FrozenError, "can't modify frozen String" if frozen?
return to_enum(:gsub!, *args) if args.length == 1 && !block
str = self.gsub(*args, &block)
return nil if str == self
return nil unless self.index(args[0])
self.replace(str)
end
@@ -161,7 +161,7 @@ class String
def sub!(*args, &block)
raise FrozenError, "can't modify frozen String" if frozen?
str = self.sub(*args, &block)
return nil if str == self
return nil unless self.index(args[0])
self.replace(str)
end