はじめまして。
  最近、ruby の便利さに感動している三代川と申します。

  ruby では、メソッドの第一引数へ nil を渡す事は、文法上禁じ
られているのでしょうか?
  以下のソースを試してみますと、

---- ここから ---- ここから ---- ここから 
#!/usr/local/bin/ruby

class Foo
  def []=(key, val)
    p key
  end
  def bracket=(key, val)
  end
end

#Foo.bracket=(nil, 'foo')
#Foo.new[nil]='foo'
#Foo.new[]='foo'
---- ここまで ---- ここまで ---- ここまで 

1) Foo.bracket=(nil, 'foo') 行を有効にすると、parse エラーに
   なる。
2) Foo.new[nil]='foo' 行を有効にすると、[]= メソッドの第一引
   数へ nil が渡る。
3) Foo.new[]='foo' 行を有効にすると ruby が core dump する (^^;

  ユーザーズガイドの syntax.html や yacc.html へあたってみた
のですが、明確な記述を見付けられませんでした。parse.y にも当
たってみたのですが、yacc はあまり得意でないので、やはり分か
りませんでした...。

  もしご存知の方がいらっしゃいましたら、どなたかこの件に対し
て解説して頂けるとありがたいです。なお、使用しているruby の
バージョンは、

    ruby 1.1b3(97/12/25) [i386-freebsd2.2.2]

です。

----
  ちなみに、本当にしたかった事は、

    Hash[] の key が指定されなかった場合には、val 内の一定メ
    ソッドを用いて key を自動計算する

という事なのでした。
-- 
Nobuyoshi Miyokawa / nmiyo / hic.co.jp