Bug #4179: OpenStruct#method_missing handles #[]=3D wrongly
http://redmine.ruby-lang.org/issues/show/4179

Author: Caius Durling
Status: Open, Priority: Normal
Category: lib, Target version: Ruby 1.8.7
ruby -v: ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0] =


## Code to reproduce:

    require "ostruct"
    OpenStruct.new[:foo] =3D true

## Expected

`NoMethodError` to be raised, as `OpenStruct#[]=3D` is not a defined meth=
od.

## Actual

`wrong number of arguments (2 for 1) (ArgumentError)`

## Notes

I wrote a test case to check that it would raise `NoMethodError` when you=
 call `OpenStruct#[]=3D`, and then amended `OpenStruct#method_missing` to=
 fix the bug. Patch attached with both test case (including a check that =
`OpenStruct#[]` raises a `NoMethodError` too) and the fix in it.


----------------------------------------
http://redmine.ruby-lang.org
ZGlmZiAtLWdpdCBhL2xpYi9vc3RydWN0LnJiIGIvbGliL29zdHJ1Y3QucmIK
aW5kZXggNDVlYmI4MC4uYjFhZDExNiAxMDA2NDQKLS0tIGEvbGliL29zdHJ1
Y3QucmIKKysrIGIvbGliL29zdHJ1Y3QucmIKQEAgLTg5LDcgKzg5LDcgQEAg
Y2xhc3MgT3BlblN0cnVjdAogICBkZWYgbWV0aG9kX21pc3NpbmcobWlkLCAq
YXJncykgIyA6bm9kb2M6CiAgICAgbW5hbWUgPSBtaWQuaWQybmFtZQogICAg
IGxlbiA9IGFyZ3MubGVuZ3RoCi0gICAgaWYgbW5hbWUuY2hvbXAhKCc9JykK
KyAgICBpZiBtbmFtZS5jaG9tcCEoJz0nKSAmJiBtbmFtZSAhPSAiW10iCiAg
ICAgICBpZiBsZW4gIT0gMQogICAgICAgICByYWlzZSBBcmd1bWVudEVycm9y
LCAid3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cyAoI3tsZW59IGZvciAxKSIs
IGNhbGxlcigxKQogICAgICAgZW5kCmRpZmYgLS1naXQgYS90ZXN0L29zdHJ1
Y3QvdGVzdF9vc3RydWN0LnJiIGIvdGVzdC9vc3RydWN0L3Rlc3Rfb3N0cnVj
dC5yYgppbmRleCA1YzE0MGE0Li43NTA0ZTI5IDEwMDY0NAotLS0gYS90ZXN0
L29zdHJ1Y3QvdGVzdF9vc3RydWN0LnJiCisrKyBiL3Rlc3Qvb3N0cnVjdC90
ZXN0X29zdHJ1Y3QucmIKQEAgLTYzLDQgKzYzLDE1IEBAIEVPVAogICAgIGFz
c2VydF9yYWlzZShUeXBlRXJyb3IpIHtvLmEgPSAneid9CiAgICAgYXNzZXJ0
X2VxdWFsKCdhJywgby5hKQogICBlbmQKKworICBkZWYgdGVzdF9tZXRob2Rf
bWlzc2luZ19oYW5kbGVzX3NxdWFyZV9icmFja2V0X2VxdWFscworICAgIG8g
PSBPcGVuU3RydWN0Lm5ldworICAgIGFzc2VydF9yYWlzZShOb01ldGhvZEVy
cm9yKSB7IG9bOmZvb10gPSA6YmFyIH0KKyAgZW5kCisKKyAgZGVmIHRlc3Rf
bWV0aG9kX21pc3NpbmdfaGFuZGxlc19zcXVhcmVfYnJhY2tldHMKKyAgICBv
ID0gT3BlblN0cnVjdC5uZXcKKyAgICBhc3NlcnRfcmFpc2UoTm9NZXRob2RF
cnJvcikgeyBvWzpmb29dIH0KKyAgZW5kCisKIGVuZAo=