[ruby-core:122537] [Ruby Bug#21356] Error when accessing local variable named "default" with Binding#local_variable_get
From:
"nagachika (Tomoyuki Chikanaga) via ruby-core" <ruby-core@...>
Date:
2025-06-15 04:16:58 UTC
List:
ruby-core #122537
Issue #21356 has been updated by nagachika (Tomoyuki Chikanaga). Backport changed from 3.2: REQUIRED, 3.3: REQUIRED, 3.4: REQUIRED to 3.2: R= EQUIRED, 3.3: DONTNEED, 3.4: REQUIRED The numbered parameter checks in Binding#local_variable_get was introduced = at commit:993fd96ce6bb763e08207bb3d53824d5d46d07a4 ([Bug #20965], [Bug #210= 49]). The changeset was not backported into ruby_3_3. I decide to mark this= ticket "DONTNEED" at least for ruby_3_3. ---------------------------------------- Bug #21356: Error when accessing local variable named "default" with Bindin= g#local_variable_get https://bugs.ruby-lang.org/issues/21356#change-113763 * Author: richardboehme (Richard B=F6hme) * Status: Closed * ruby -v: ruby 3.5.0dev (2025-05-21T06:12:18Z master f6cbf499bc) +PRISM [x= 86_64-linux] * Backport: 3.2: REQUIRED, 3.3: DONTNEED, 3.4: REQUIRED ---------------------------------------- On Ruby master when using `Binding#local_variable_get` with the name `:defa= ult` it raises the following error: ``` 'Binding#local_variable_get': numbered parameter 'default' is not a local v= ariable (NameError) ``` I saw that this error was introduced in #21049 but it seems like the check = for whether the passed variable name is a numbered parameter does not work = for the `:default` symbol.=20 I think this might be an off-by-one error in the `rb_numparam_id_p` functio= n in proc.c, where instead of adding 9 (the maximum number of numbered para= meters) to tNUMPARAM_1 we currently add 10 which then includes the id of de= fault as well? Compiling with this change (see attached diff) fixed the iss= ue but I'm not sure if it might break other things. ---Files-------------------------------- patch.diff (384 Bytes) --=20 https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.rub= y-lang.org/