#RubyLang #WTF question. Instance vars are #autovivified as `nil`, but locals must be defined to avoid raising #NameError. This works unless you assign the same #lvar on the RHS.

```ruby
a
#=> undefined local variable or method `a' for main (NameError)

a = a
#=> nil

a
#=> nil

defined?(a) == "local-variable"
#=> true

a = b
#=> undefined local variable or method `b' for main (NameError)

@c
#=> nil
```

Why special rules for undefined RHS lvars, but only for self-assignment? Bug or use case?