Project

General

Profile

Actions

Bug #11115

closed

Assigning a non-existent local variable to itself sets it to nil; unintuitive behaviour?

Added by GeorgeMillo (George Millo) almost 9 years ago. Updated almost 9 years ago.

Status:
Rejected
Assignee:
-
Target version:
-
[ruby-core:69061]

Description

Here's what normally happens when I try to reference a local variable that doesn't exist:

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

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:

def foo
  fizz = bar
end

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

Is this a bug, or a feature?

Updated by nobu (Nobuyoshi Nakada) almost 9 years ago

  • Description updated (diff)
  • Status changed from Open to Rejected

George Millo wrote:

Is this a bug, or a feature?

A feature.

Actions

Also available in: Atom PDF

Like0
Like0