[ruby-core:78423] [Ruby trunk Feature#12979] Avoid exception for #dup on Integer (and similar cases)
From:
Mike@...
Date:
2016-11-29 20:04:53 UTC
List:
ruby-core #78423
SXNzdWUgIzEyOTc5IGhhcyBiZWVuIHVwZGF0ZWQgYnkgTWlrZSBWYXN0b2xhLgoKCk5vYnV5b3No aSBOYWthZGEgd3JvdGU6Cj4gU2hvdWxkIGBLZXJuZWwjY2xvbmVgIGJlIHNhbWU/CgpUaGUgb3Jp Z2luYWwgY29uc2Vuc3VzIHdhcyB0aGF0IHRoZSBmaXggc2hvdWxkIGJlIGZvciBib3RoICoqYCNk dXBgKiogYW5kICoqYCNjbG9uZWAqKiB0byBmYWlsIHNpbGVudGx5IG9uIGltbWVkaWF0ZSBvYmpl Y3RzLiBUaGUgcGVyc29uIHdobyBjcmVhdGVkIHRoaXMgaXNzdWUgcmVuZGVyZWQgKipgI2Nsb25l YCoqIGFzICJhbmQgc2ltaWxhciBjYXNlcyIgaW4gdGhlIHRpdGxlLCBwZXJoYXBzIGFzc3VtaW5n IHRoZXJlIGNvdWxkIGJlIGFkZGl0aW9uYWwgcGxhY2VzIGNoYW5nZXMgd2VyZSBuZWNlc3Nhcnk/ CgpOb2J1eW9zaGkgTmFrYWRhIHdyb3RlOgo+IEkgcmVtZW1iZXIgYGNsb25lYCBoYXMgYGZyZWV6 ZWAgb3B0aW9uLgo+IFdoYXQgc2hvdWxkIGAxLmNsb25lKGZyZWV6ZTogZmFsc2UpYCBkbywgaWdu b3JlIHRoZSBvcHRpb24sIG9yIHJhaXNlIGFuIGBBcmd1bWVudEVycm9yYD8KClRoaXMgaXMgdG90 YWxseSBiZXNpZGUgdGhlIHBvaW50LiBMb29rIGF0IGl0IHRoaXMgd2F5OgoqKmAxLmNsb25lKGZy ZWV6ZTogZmFsc2UpYCoqIOKHlCAqKmAxLmNsb25lYCoqCioqYDEuY2xvbmUoZnJlZXplOiB0cnVl KWAqKiDih5QgKipgMS5jbG9uZS5mcmVlemVgKioKCl8oTkI6IEknbSBub3QgZmFtaWxpYXIgd2l0 aCB0aGlzIHBhcnRpY3VsYXIgaW52b2NhdGlvbiBvZiAqKmAjY2xvbmVgKiosIHNvIGl0J3MgcG9z c2libGUgdGhpcyBhcmd1bWVudCB0byB0aGUgbWV0aG9kIGlzIHN1cHBvc2VkIHRvIGRvIHNvbWUg c29ydCBvZiBkZWVwICoqYCNmcmVlemVgKiosIGJ1dCBzaW5jZSB3ZSdyZSBkZWFsaW5nIG9ubHkg d2l0aCBpbW1lZGlhdGVzIGhlcmUsIHRoaXMgc2ltcGxpZmljYXRpb24gY2FuIHN1ZmZpY2UuKV8K CkluIHRoZSBmaXJzdCBsaW5lLCB0aGUgaGFzaCBhcmd1bWVudCBtaWdodCBhcyB3ZWxsIGJlIGFi c2VudCwgYXMgbm90IGZyZWV6aW5nIGlzIHRoZSBkZWZhdWx0IGJlaGF2aW9yLiAKSW4gdGhlIHNl Y29uZCBsaW5lLCB5b3UncmUgYXR0ZW1wdGluZyB0byBmcmVlemUgYW4gaW1tZWRpYXRlLCB3aGlj aCAtLSBjb250cmFyeSB0byBNYXR6J3Mgc3RhdGVtZW50IC0tIGFyZW4ndCB1bmZyZWV6YWJsZSwg YnV0IGluIGZhY3QgKioqYWx3YXlzKioqIGZyb3plbi4gQXMgYSByZXN1bHQsIHRoZSAqKmAjZnJl ZXplYCoqIGluc3RydWN0aW9uIGhlcmUgaXMgYWxzbyBzaWxlbnRseSBpZ25vcmVkLgoKVGhpcyBl bnRpcmUgaXNzdWUgaXMgYWJvdXQgKipgI2R1cGAqKi8qKmAjY2xvbmVgKiouIEluIGZhY3QsIGlm IHlvdSByZWFkIHRoZSBwYXJlbnQgaXNzdWUsIGEgbWFqb3IgcmVhc29uIHdoeSB0aGUgY3VycmVu dCBiZWhhdmlvciBpcyBzbyB1bmludHVpdGl2ZSBpcyBwcmVjaXNlbHkgYmVjYXVzZSAqKmAjZnJl ZXplYCoqIGZhaWxzIHNpbGVudGx5IGFuZCByZXR1cm5zIHRoZSBvYmplY3QgdW5tb2RpZmllZCwg YnV0IHRoZSBmb3JtZXIgdHdvIG1ldGhvZHMgZG8gbm90LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpGZWF0dXJlICMxMjk3OTogQXZvaWQgZXhjZXB0aW9uIGZvciAj ZHVwIG9uIEludGVnZXIgKGFuZCBzaW1pbGFyIGNhc2VzKQpodHRwczovL2J1Z3MucnVieS1sYW5n Lm9yZy9pc3N1ZXMvMTI5NzkjY2hhbmdlLTYxNzk1CgoqIEF1dGhvcjogTWFydGluIETDvHJzdAoq IFN0YXR1czogT3BlbgoqIFByaW9yaXR5OiBOb3JtYWwKKiBBc3NpZ25lZTogTm9idXlvc2hpIE5h a2FkYQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoaXMgaXMgYSBw cm9wb3NhbCByZXN1bHRpbmcgZnJvbSBhIGRpc2N1c3Npb24gaW4gQnVnICMxMTkyOS4gQmVjYXVz ZSB0aGlzIGlzIHByb3Bvc2luZyBhIGRpZmZlcmVudCBzb2x1dGlvbiBmcm9tICMxMTkyOSwgaXQg aGFzIGEgbmV3IG51bWJlci4KCiMxMTkyOSBzaG93cyB0aGF0IHBlb3BsZSBhcmUgY29uZnVzZWQg dGhhdCBlLmcuIDMuZHVwIHRocm93cyBhbiBleGNlcHRpb24gKGJ1dCBJbnRlZ2VyI2R1cCBpcyBh Y3R1YWxseSBpbXBsZW1lbnRlZCwgc28gSW50ZWdlci5yZXNwb25kX3RvPyA6ZHVwID0+IHRydWUp LgoKSW50ZWdlciNkdXAgc2hvdWxkIGZhaWwgc2lsZW50bHksIHJldHVybmluZyB0aGUgcmVjZWl2 ZXIsIGluIHRoZSBzYW1lIHdheSBhcyBJbnRlZ2VyI2ZyZWV6ZSBmYWlscyBzaWxlbnRseS4gQ2l0 aW5nIGZyb20gIzExOTI5IChjb21tZW50IGJ5IE1pa2UgVmFzdG9sYSk6ICJJZiB0aGUgb2JqZWN0 IGNhbid0IGJlIGR1cGVkL2Nsb25lZCBiZWNhdXNlIGl0J3MgYW4gaW1tZWRpYXRlLCBkdXAvY2xv bmUgc2hvdWxkIHJldHVybiB0aGUgb2JqZWN0IGl0c2VsZi4gKFRoZXJlIHNob3VsZG4ndCBiZSBh bnkgaGFybSBpbiBkb2luZyBzbyBzaW5jZSBub3RoaW5nIGFib3V0IHRoZSBvYmplY3QgY2FuIGJl IGNoYW5nZWQgaW4gdGhlIGZpcnN0IHBsYWNlLikiLiBDaXRpbmcgc29tZSBtb3JlOgoKPiBJIGxp dGVyYWxseSBjYW4ndCBpbWFnaW5lIGFueSBzY2VuYXJpbyBpbiB3aGljaCBhIGRldiwgd2hlbiwg c2F5LCBjb2RpbmcgYSBjbGFzcyB3aXRoIHRoZSBsaW5lOgo+IAo+IHJldHVybiB2YWwuZHVwLmZy ZWV6ZQo+IC4uIHJlYWxseSB3YW50cyBhbiBFeGNlcHRpb24gdGhyb3duIHdoZW4gdmFsIGhhcHBl bnMgdG8gYmUgZGUtZmFjdG8gdW4tZHVwLWFibGUuIFdoYXQgdGhleSByZWFsbHkgd2FudCBpczoK PiAKPiByZXR1cm4gdmFsLmR1cC5mcmVlemUgcmVzY3VlIHZhbAoKVGhlIHByb3Bvc2FsIGFsc28g aGFzIHRoZSBhZHZhbnRhZ2UgdGhhdCBpdCBsZWFkcyB0byBhIG11Y2ggbW9yZSB1bmlmaWVkLCBz dHJlYW1saW5lZCBwcm90b2NvbCwgYXZvaWRpbmcgbmVlZGxlc3MgZXhwb3NpdGlvbiBvZiBpbnRl cm5hbHMuIEl0IHdvdWxkIGRvIGV4YWN0bHkgd2hhdCBkdXAgKGFuZCBjbG9uZSkgYXJlIGRlc2Ny aWJlZCB0byBkbywgbmFtZWx5IChwcmV0ZW5kIHRvKSByZXR1cm4gYSBzaGFsbG93IGNvcHkuCgoK Ci0tIApodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8KClVuc3Vic2NyaWJlOiA8bWFpbHRvOnJ1 YnktY29yZS1yZXF1ZXN0QHJ1YnktbGFuZy5vcmc/c3ViamVjdD11bnN1YnNjcmliZT4KPGh0dHA6 Ly9saXN0cy5ydWJ5LWxhbmcub3JnL2NnaS1iaW4vbWFpbG1hbi9vcHRpb25zL3J1YnktY29yZT4K