From a0f41ea4b9b3abaddf6454253cf408b5dd160bce Mon Sep 17 00:00:00 2001 From: tannevaled Date: Mon, 2 Nov 2026 17:55:12 +0100 Subject: [PATCH] deps: go-ruby-parser v0.14.0 closes the last defect of #799 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit v0.14.0 carries `token.IsConstStart`, which decides the constant/local distinction the way MRI's `rb_sym_constant_char_p` does: by Unicode case, not by `'A' <= c && c <= 'Z'`. Titlecase letters count as uppercase, and caseless scripts (CJK, Hebrew, Arabic) are lowercase — so `Ἅbb` is a constant and `μm` is a local. Measured on this branch against `main`, same corpus, same host, three passes: language/ +2, no regression core/ 1 file moved, 0 regressed (core/random/bytes_spec, known flaky) language/variables_spec.rb 118/1 -> pass=119 fail=0 `variables_spec.rb` is now clean, which was the fifth and last of the five defects #799 held. The file had been failing on a non-ASCII constant assignment since the issue was opened. Closes #799 Co-Authored-By: Claude Opus 5 --- README.md | 5 ++++- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 9db2e3dc..9a8b8178 100644 --- a/README.md +++ b/README.md @@ -229,7 +229,10 @@ args/kwargs, `class << self` (singleton class), masgn to any target (ivar/cvar/gvar/attr/index/constant + nested destructuring), `alias`/`undef`, anonymous params + forwarding (`def f(*, **, &)` / `g(...)`), special globals (`$$` etc.), shorthand hash `{x:}`, quoted / operator / char-literal symbols, -rationals & imaginaries (`2r` / `3i`), unicode identifiers, `for…in…end` loops, +rationals & imaginaries (`2r` / `3i`), unicode identifiers — including the case +rule that makes `Ἅbb` a **constant** and `μm` a local, titlecase letters +counting as uppercase and caseless ones (CJK, Hebrew, Arabic) as lowercase — +`for…in…end` loops, block keyword params, begin-less rescue/ensure, and `!~` — on top of the pre-existing core (full object model, metaprogramming, Fiber/Thread, Marshal, regexp, the scientific bindings, and the js/wasm target) detailed below. diff --git a/go.mod b/go.mod index 13d944ec..154188f3 100644 --- a/go.mod +++ b/go.mod @@ -132,7 +132,7 @@ require ( github.com/go-ruby-pagy/pagy v0.0.0-20261025191701-053fcd4aa5cc github.com/go-ruby-paper-trail/paper-trail v0.0.0-20261025191706-ca25fcaea25a github.com/go-ruby-parquet/parquet v0.0.0-20261025191711-6e7a95f7a303 - github.com/go-ruby-parser/parser v0.13.1 + github.com/go-ruby-parser/parser v0.14.0 github.com/go-ruby-pathname/pathname v0.0.0-20261025180827-dbeb0072806a github.com/go-ruby-pg/pg v0.0.0-20261025191721-f5e310f52c5f github.com/go-ruby-prawn/prawn v0.0.0-20261028113423-d440480b5471 diff --git a/go.sum b/go.sum index 1efc3a25..7a5883a6 100644 --- a/go.sum +++ b/go.sum @@ -539,8 +539,8 @@ github.com/go-ruby-paper-trail/paper-trail v0.0.0-20261025191706-ca25fcaea25a h1 github.com/go-ruby-paper-trail/paper-trail v0.0.0-20261025191706-ca25fcaea25a/go.mod h1:tDd8O+gDluzM96A0+akb2HwbPVH87uyD6F45m92vXnI= github.com/go-ruby-parquet/parquet v0.0.0-20261025191711-6e7a95f7a303 h1:7yRjNEDoHtJdLRGdBhbjlevFSOVgGAu19xcb7a+mV8E= github.com/go-ruby-parquet/parquet v0.0.0-20261025191711-6e7a95f7a303/go.mod h1:nBsEK7/8bOQ6rPfHgx8hYZDDrBsPF2B4iYp6QCYZGcA= -github.com/go-ruby-parser/parser v0.13.1 h1:gq7QVT7KdRp7nZt1UHsa73YDo77qrD8kGdQY/GVEA6g= -github.com/go-ruby-parser/parser v0.13.1/go.mod h1:Se+ZvnD/4Vm0RRe1U5kZi0GmPSvSczJJXdZLiB0PlJY= +github.com/go-ruby-parser/parser v0.14.0 h1:eMEtoInHh/5Yr8wTeUaTbYYw5G3S5IesaW8/gMwsEhQ= +github.com/go-ruby-parser/parser v0.14.0/go.mod h1:Se+ZvnD/4Vm0RRe1U5kZi0GmPSvSczJJXdZLiB0PlJY= github.com/go-ruby-pathname/pathname v0.0.0-20261025180827-dbeb0072806a h1:RSaroQC+fQU6UMnu/g3X9KwADDiHvSBJk2EtofDseqg= github.com/go-ruby-pathname/pathname v0.0.0-20261025180827-dbeb0072806a/go.mod h1:tc53WqrwBXWit/O/QmeTZuhm9sz+0IYhzvxjM+BiPa4= github.com/go-ruby-pg/pg v0.0.0-20261025191721-f5e310f52c5f h1:Jq3MUeHmFftrPQHEF7GiRjKpSr+g9CdruR/CNDklID8=