[#81492] [Ruby trunk Feature#13618] [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid — normalperson@...

Issue #13618 has been reported by normalperson (Eric Wong).

12 messages 2017/06/01

[ruby-core:81637] [Ruby trunk Bug#13647] Some weird behaviour with keyword arguments

From: jinksy@...
Date: 2017-06-09 13:15:15 UTC
List: ruby-core #81637
Issue #13647 has been reported by Arepo (Sasha Cooper).

----------------------------------------
Bug #13647: Some weird behaviour with keyword arguments
https://bugs.ruby-lang.org/issues/13647

* Author: Arepo (Sasha Cooper)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: 
* Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
I was just playing around and found this weird behaviour, which seems to be in at least Ruby 2.3.0 and Ruby 2.4.0:

~~~ ruby
    hashie = Hashie::Mash.new(a: :b)

    def foo(hashie)
      hashie.inspect
    end

    def woo(hashie, bashie: nil)
      hashie.inspect
    end

    def zoo(hashie = nil, cashie: nil)
      hashie.inspect
    end

    foo(hashie)    # => "#<Hashie::Mash a=:b>"

    woo(hashie)    # => "#<Hashie::Mash a=:b>"
~~~


So far so good, but when we call the third method, we get this:


~~~ ruby
    zoo(hashie)    # => "{\"a\"=>:b}"
~~~


Similarly,

~~~ ruby
    zoo(:symbol)   # => ":symbol"
~~~


Is this intentional behaviour? If so, what's the rationale? If not, is it a known issue?



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

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next