Issue #11115 has been updated by Nobuyoshi Nakada.

Description updated
Status changed from Open to Rejected

George Millo wrote:
> Is this a bug, or a feature?

A feature.

----------------------------------------
Bug #11115: Assigning a non-existent local variable to itself sets it to nil; unintuitive behaviour?
https://bugs.ruby-lang.org/issues/11115#change-52315

* Author: George Millo
* Status: Rejected
* Priority: Low
* Assignee: 
* ruby -v: 2.2.2
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
Here's what normally happens when I try to reference a local variable that doesn't exist:

~~~ruby
def foo
  bar
end

foo
# => NameError: undefined local variable or method `bar'
~~~

But if I assign bar to "itself", it doesn't raise an error

~~~ruby
def foo
  bar = bar
  bar
end

foo
# => no results
~~~

Looks like `bar` in the second example is being set to `nil`. This doesn't feel very intuitive to me; shouldn't this raise an error? I mean, if you try to assign the non-existent variable 'bar' to anything else, that's how it works:

~~~ruby
def foo
  fizz = bar
end

foo
# => NameError: undefined local variable or method `bar'
~~~

Is this a bug, or a feature?




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