[#56965] [ruby-trunk - Bug #8852][Open] Synology build of ruby-2.0.0-p247 is failing — "barbecuesteve (Steve Sparks)" <sparks@...>

12 messages 2013/09/02

[#57051] [ruby-trunk - Bug #8872][Open] Case statements do not honor a refinement of the '===' method — "jconley88 (Jon Conley)" <schnozberries@...>

21 messages 2013/09/07

[#57058] [ruby-trunk - Bug #8875][Open] Select is not usable with SSLSocket — "headius (Charles Nutter)" <headius@...>

11 messages 2013/09/07

[#57074] [ruby-trunk - Bug #8879][Open] String#to_r fails after moving ruby to other OSX system — "mpapis (Michal Papis)" <mpapis@...>

12 messages 2013/09/08

[#57092] [ruby-trunk - Bug #8883][Open] Rational canonicalization unexpectedly converts to Fixnum — "melquiades (Paul Cantrell)" <cantrell@...>

16 messages 2013/09/09

[#57109] [ruby-trunk - Bug #8886][Open] TracePoint API inconsistence when raise used — deivid (David Rodríguez) <deivid.rodriguez@...>

14 messages 2013/09/10

[#57111] [ruby-trunk - Feature #8887][Open] min(n), max(n), min_by(n), max_by(n) — "akr (Akira Tanaka)" <akr@...>

13 messages 2013/09/10

[#57131] [ruby-trunk - Feature #8895][Open] Destructuring Assignment for Hash — "chendo (Jack Chen)" <ruby-lang@...>

19 messages 2013/09/11

[#57186] [ruby-trunk - Feature #8909][Open] Expand "f" frozen suffix to literal arrays and hashes — "headius (Charles Nutter)" <headius@...>

37 messages 2013/09/14

[#57262] [ruby-trunk - Feature #8921][Open] Allow select, reject, etc to accept a regex — "kyledecot (Kyle Decot)" <kyle.decot@...>

13 messages 2013/09/18

[#57273] [ruby-trunk - Feature #8923][Open] Frozen nil/true/false — "ko1 (Koichi Sasada)" <redmine@...>

13 messages 2013/09/19

[#57353] [ruby-trunk - Feature #8948][Open] Frozen regex — "sawa (Tsuyoshi Sawada)" <sawadatsuyoshi@...>

19 messages 2013/09/24

[#57385] [ruby-trunk - Bug #8953][Open] `str =~ /pattern/` does not call =~ method if (1) str is a String, (2) /pattern/ is a Regexp literal — "gfx (Goro Fuji)" <gfuji@...>

12 messages 2013/09/26

[#57396] [ruby-trunk - Feature #8956][Open] Allow hash members delimited by \n inside of {} — "adamdunson (Adam Dunson)" <adam@...>

20 messages 2013/09/26

[ruby-core:57175] [ruby-trunk - misc #8905][Open] Add documentation to semantics of method default arguments

From: "prijutme4ty (Ilya Vorontsov)" <prijutme4ty@...>
Date: 2013-09-13 07:06:14 UTC
List: ruby-core #57175
Issue #8905 has been reported by prijutme4ty (Ilya Vorontsov).

----------------------------------------
misc #8905: Add documentation to semantics of method default arguments
https://bugs.ruby-lang.org/issues/8905

Author: prijutme4ty (Ilya Vorontsov)
Status: Open
Priority: Normal
Assignee: zzak (Zachary Scott)
Category: doc
Target version: 


In http://www.ruby-doc.org/core-2.0.0/doc/syntax/methods_rdoc.html one can see simple uses of default parameters. But I couldn't find any rules on default parameters, which are calculated in a runtime such as context and order of assignments. And whether this order is always well defined? Usually it's left to right, are there any exceptions for keyword arguments or splats?

I've made a bit of tests to make am intuition of using default arguments but missed lots of corner cases. Which probably should be documented, but simple cases should be documented too.

class A
  def f
    'A#f'
  end
  def self.f
    'A.f'
  end
  def g(arg = f)
    puts arg;
  end
  def self.g(arg = f)
    puts arg
  end
  def h(arg1 = f, arg2 = '(' +arg1 + ')')
    puts "#{arg1}, #{arg2}"
  end
  def j(arg1 = 2*arg2, arg2 = f)
    puts "#{arg1}, #{arg2}"
  end
end

A.g # => 'A.f'
instance = A.new
instance.g # => 'A#f'
instance.h # => 'A#f, (A#f)'
instance.j # => Undefined local variable or method arg2 for #<A:...>


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

In This Thread

Prev Next