[ruby-core:62423] [ruby-trunk - Bug #9486] [Closed] Multiple Kernel#local_variables entries with block local parameters

From: nobu@...
Date: 2014-05-06 14:35:11 UTC
List: ruby-core #62423
Issue #9486 has been updated by Nobuyoshi Nakada.

Status changed from Assigned to Closed
% Done changed from 0 to 100

Applied in changeset r45847.

----------
missed ref.  [ruby-core:60501] [Bug #9486]

----------------------------------------
Bug #9486: Multiple Kernel#local_variables entries with block local parameters
https://bugs.ruby-lang.org/issues/9486#change-46572

* Author: Ryan Mulligan
* Status: Closed
* Priority: Normal
* Assignee: Nobuyoshi Nakada
* Category: core
* Target version: current: 2.2.0
* ruby -v: ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-linux]
* Backport: 1.9.3: REQUIRED, 2.0.0: REQUIRED, 2.1: REQUIRED
----------------------------------------
Better formatting here: http://stackoverflow.com/questions/21423863/multiple-kernellocal-variables-entries-with-block-local-parameters/21427424?noredirect=1#21427424

I am using this version of Ruby on Arch Linux. I also tried the first code snippet in ruby 1.9, which had the same results.

    ruby -v
    ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-linux]
    uname -a
    Linux ryantm0j132 3.12.7-2-ARCH #1 SMP PREEMPT Sun Jan 12 13:09:09 CET 2014 x86_64 GNU/Linux

These three snippets below are separate programs.

When I use block local variables that shadow a variable the local_variables array contains 3 entries:

    a = 1
    puts local_variables.inspect #=> [:a]
    proc { |;a|
    puts local_variables.inspect #=> [:a,:a,:a]
    }.call

If I don't shadow, anything it contains 1 entry:

    puts local_variables.inspect #=> []
    proc { |;b|
    puts local_variables.inspect #=> [:b]
    }.call
    
Another example of the block local variable not shadowing anything:

    a = 1
    puts local_variables.inspect #=> [:a]
    proc { |;b|
    puts local_variables.inspect #=> [:b,:a]
    }.call
    
Is there some reason for these extra entries in the first case? Is it a bug in ruby?



-- 
https://bugs.ruby-lang.org/

In This Thread

Prev Next