diff options
| author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2025-11-05 12:07:53 +0900 |
|---|---|---|
| committer | git <svn-admin@ruby-lang.org> | 2025-11-05 05:13:20 +0000 |
| commit | f8e9bccd03f3e62e2f25cc08d5d5c6861347a0fe (patch) | |
| tree | 70f91002c60dfa02d99e8e59229fdd21751798a0 | |
| parent | c85ef2ca9c5c96f3a02bc8b1a20c0f570737994b (diff) | |
[ruby/strscan] Deprecate undocumented toplevel constant `ScanError`
https://github.com/ruby/strscan/commit/b4ddc3a2a6
| -rw-r--r-- | ext/strscan/extconf.rb | 1 | ||||
| -rw-r--r-- | ext/strscan/strscan.c | 11 | ||||
| -rw-r--r-- | test/strscan/test_stringscanner.rb | 2 |
3 files changed, 12 insertions, 2 deletions
diff --git a/ext/strscan/extconf.rb b/ext/strscan/extconf.rb index 3c311d2364..d2e9343cbc 100644 --- a/ext/strscan/extconf.rb +++ b/ext/strscan/extconf.rb @@ -4,6 +4,7 @@ if RUBY_ENGINE == 'ruby' $INCFLAGS << " -I$(top_srcdir)" if $extmk have_func("onig_region_memsize(NULL)") have_func("rb_reg_onig_match", "ruby/re.h") + have_func("rb_deprecate_constant") create_makefile 'strscan' else File.write('Makefile', dummy_makefile("").join) diff --git a/ext/strscan/strscan.c b/ext/strscan/strscan.c index da7b51ec32..4746afd517 100644 --- a/ext/strscan/strscan.c +++ b/ext/strscan/strscan.c @@ -24,6 +24,14 @@ extern size_t onig_region_memsize(const struct re_registers *regs); #define STRSCAN_VERSION "3.1.6.dev" + +#ifdef HAVE_RB_DEPRECATE_CONSTANT +/* In ruby 3.0, defined but exposed in external headers */ +extern void rb_deprecate_constant(VALUE mod, const char *name); +#else +# define rb_deprecate_constant(mod, name) ((void)0) +#endif + /* ======================================================================= Data Type Definitions ======================================================================= */ @@ -1604,7 +1612,7 @@ name_to_backref_number(struct re_registers *regs, VALUE regexp, const char* name (const unsigned char* )name_end, regs); if (num >= 1) { - return num; + return num; } } rb_enc_raise(enc, rb_eIndexError, "undefined group name reference: %.*s", @@ -2210,6 +2218,7 @@ Init_strscan(void) ScanError = rb_define_class_under(StringScanner, "Error", rb_eStandardError); if (!rb_const_defined(rb_cObject, id_scanerr)) { rb_const_set(rb_cObject, id_scanerr, ScanError); + rb_deprecate_constant(rb_cObject, "ScanError"); } tmp = rb_str_new2(STRSCAN_VERSION); rb_obj_freeze(tmp); diff --git a/test/strscan/test_stringscanner.rb b/test/strscan/test_stringscanner.rb index 085a911313..8218e5b6be 100644 --- a/test/strscan/test_stringscanner.rb +++ b/test/strscan/test_stringscanner.rb @@ -875,7 +875,7 @@ module StringScannerTests assert_equal({}, s.named_captures) assert_equal("te", s.scan(/../)) assert_equal(nil, s.scan(/\d/)) - assert_raise(ScanError) { s.unscan } + assert_raise(StringScanner::Error) { s.unscan } end def test_rest |
