diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-12-12 18:41:18 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-12-12 18:41:18 +0900 |
| commit | bbb088234395efda23540d30ab5d1cb40f220d82 (patch) | |
| tree | 4f66588878264c0d2a17529629d7d183d6a49d29 /mrblib | |
| parent | d4ff92bcf65ce140495014f40d22b93a1b1fb957 (diff) | |
| download | mruby-bbb088234395efda23540d30ab5d1cb40f220d82.tar.gz mruby-bbb088234395efda23540d30ab5d1cb40f220d82.zip | |
Modifying frozen objects will raise `FrozenError`.
`FrozenError` is a subclass of `RuntimeError` which used to be
raised. [Ruby2.5]
Diffstat (limited to 'mrblib')
| -rw-r--r-- | mrblib/10error.rb | 3 | ||||
| -rw-r--r-- | mrblib/string.rb | 4 |
2 files changed, 5 insertions, 2 deletions
diff --git a/mrblib/10error.rb b/mrblib/10error.rb index 22a8d1ad7..0d9f38d58 100644 --- a/mrblib/10error.rb +++ b/mrblib/10error.rb @@ -51,6 +51,9 @@ end class NotImplementedError < ScriptError end +class FrozenError < RuntimeError +end + class StopIteration < IndexError attr_accessor :result end diff --git a/mrblib/string.rb b/mrblib/string.rb index 4c6114ecb..ee98cfa0c 100644 --- a/mrblib/string.rb +++ b/mrblib/string.rb @@ -96,7 +96,7 @@ class String # # ISO 15.2.10.5.19 def gsub!(*args, &block) - raise RuntimeError, "can't modify frozen String" if frozen? + 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 @@ -159,7 +159,7 @@ class String # # ISO 15.2.10.5.37 def sub!(*args, &block) - raise RuntimeError, "can't modify frozen String" if frozen? + raise FrozenError, "can't modify frozen String" if frozen? str = self.sub(*args, &block) return nil if str == self self.replace(str) |
