[ruby-core:78321] [Ruby trunk Feature#12979] Avoid exception for #dup on Integer (and similar cases)

From: nobu@...
Date: 2016-11-25 07:48:46 UTC
List: ruby-core #78321
SXNzdWUgIzEyOTc5IGhhcyBiZWVuIHVwZGF0ZWQgYnkgTm9idXlvc2hpIE5ha2FkYS4KCgpJIGZv
dW5kIHRoYXQgYSBydWJ5Z2VtcyB0ZXN0ICxgVGVzdEdlbVNwZWNpZmljYXRpb24jdGVzdF9pbml0
aWFsaXplX2NvcHlfYnJva2VuYCBpbiB0ZXN0L3J1YnlnZW1zL3Rlc3RfZ2VtX3NwZWNpZmljYXRp
b24ucmIsIGRlcGVuZHMgb24gdGhpcyBleGNlcHRpb24uCkFuZCBydWJ5c3BlYyBmYWlscyBhcyB1
c3VhbC4KCmBgYGRpZmYKZGlmZiAtLWdpdCBpL29iamVjdC5jIHcvb2JqZWN0LmMKaW5kZXggMDVi
ZWY0ZC4uNzA3NWUxMyAxMDA2NDQKLS0tIGkvb2JqZWN0LmMKKysrIHcvb2JqZWN0LmMKQEAgLTQy
Myw3ICs0MjMsNyBAQCByYl9vYmpfZHVwKFZBTFVFIG9iaikKICAgICBWQUxVRSBkdXA7CiAKICAg
ICBpZiAocmJfc3BlY2lhbF9jb25zdF9wKG9iaikpIHsKLSAgICAgICAgcmJfcmFpc2UocmJfZVR5
cGVFcnJvciwgImNhbid0IGR1cCAlcyIsIHJiX29ial9jbGFzc25hbWUob2JqKSk7CisJcmV0dXJu
IG9iajsKICAgICB9CiAgICAgZHVwID0gcmJfb2JqX2FsbG9jKHJiX29ial9jbGFzcyhvYmopKTsK
ICAgICBpbml0X2NvcHkoZHVwLCBvYmopOwpkaWZmIC0tZ2l0IGkvdGVzdC9ydWJ5L3Rlc3Rfb2Jq
ZWN0LnJiIHcvdGVzdC9ydWJ5L3Rlc3Rfb2JqZWN0LnJiCmluZGV4IDdiM2RlZmEuLjJmODBiYzYg
MTAwNjQ0Ci0tLSBpL3Rlc3QvcnVieS90ZXN0X29iamVjdC5yYgorKysgdy90ZXN0L3J1YnkvdGVz
dF9vYmplY3QucmIKQEAgLTE5LDkgKzE5LDkgQEAKICAgZW5kCiAKICAgZGVmIHRlc3RfZHVwCi0g
ICAgYXNzZXJ0X3JhaXNlKFR5cGVFcnJvcikgeyAxLmR1cCB9Ci0gICAgYXNzZXJ0X3JhaXNlKFR5
cGVFcnJvcikgeyB0cnVlLmR1cCB9Ci0gICAgYXNzZXJ0X3JhaXNlKFR5cGVFcnJvcikgeyBuaWwu
ZHVwIH0KKyAgICBhc3NlcnRfZXF1YWwgMSwgMS5kdXAKKyAgICBhc3NlcnRfZXF1YWwgdHJ1ZSwg
dHJ1ZS5kdXAKKyAgICBhc3NlcnRfZXF1YWwgbmlsLCBuaWwuZHVwCiAKICAgICBhc3NlcnRfcmFp
c2UoVHlwZUVycm9yKSBkbwogICAgICAgT2JqZWN0Lm5ldy5pbnN0YW5jZV9ldmFsIHsgaW5pdGlh
bGl6ZV9jb3B5KDEpIH0KZGlmZiAtLWdpdCBpL3Rlc3QvcnVieWdlbXMvdGVzdF9nZW1fc3BlY2lm
aWNhdGlvbi5yYiB3L3Rlc3QvcnVieWdlbXMvdGVzdF9nZW1fc3BlY2lmaWNhdGlvbi5yYgppbmRl
eCA4N2YwZjM2Li4wZDUxZDkzIDEwMDY0NAotLS0gaS90ZXN0L3J1YnlnZW1zL3Rlc3RfZ2VtX3Nw
ZWNpZmljYXRpb24ucmIKKysrIHcvdGVzdC9ydWJ5Z2Vtcy90ZXN0X2dlbV9zcGVjaWZpY2F0aW9u
LnJiCkBAIC0xMjYwLDcgKzEyNjAsOCBAQAogICAgICAgcy52ZXJzaW9uID0gJzEnCiAgICAgZW5k
CiAKLSAgICBzcGVjLmluc3RhbmNlX3ZhcmlhYmxlX3NldCA6QGxpY2Vuc2VzLCA6YmxhaAorICAg
IGRlZiAoYnJva2VuX2xpY2Vuc2UgPSBPYmplY3QubmV3KS5kdXA7IHJhaXNlIFR5cGVFcnJvcjsg
ZW5kCisgICAgc3BlYy5pbnN0YW5jZV92YXJpYWJsZV9zZXQgOkBsaWNlbnNlcywgYnJva2VuX2xp
Y2Vuc2UKICAgICBzcGVjLmxvYWRlZF9mcm9tID0gJy9wYXRoL3RvL2ZpbGUnCiAKICAgICBlID0g
YXNzZXJ0X3JhaXNlcyBHZW06OkZvcm1hdEV4Y2VwdGlvbiBkbwpgYGAKCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRmVhdHVyZSAjMTI5Nzk6IEF2b2lkIGV4Y2VwdGlv
biBmb3IgI2R1cCBvbiBJbnRlZ2VyIChhbmQgc2ltaWxhciBjYXNlcykKaHR0cHM6Ly9idWdzLnJ1
YnktbGFuZy5vcmcvaXNzdWVzLzEyOTc5I2NoYW5nZS02MTY4NgoKKiBBdXRob3I6IE1hcnRpbiBE
w7xyc3QKKiBTdGF0dXM6IE9wZW4KKiBQcmlvcml0eTogTm9ybWFsCiogQXNzaWduZWU6IE5vYnV5
b3NoaSBOYWthZGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGlz
IGlzIGEgcHJvcG9zYWwgcmVzdWx0aW5nIGZyb20gYSBkaXNjdXNzaW9uIGluIEJ1ZyAjMTE5Mjku
IEJlY2F1c2UgdGhpcyBpcyBwcm9wb3NpbmcgYSBkaWZmZXJlbnQgc29sdXRpb24gZnJvbSAjMTE5
MjksIGl0IGhhcyBhIG5ldyBudW1iZXIuCgojMTE5Mjkgc2hvd3MgdGhhdCBwZW9wbGUgYXJlIGNv
bmZ1c2VkIHRoYXQgZS5nLiAzLmR1cCB0aHJvd3MgYW4gZXhjZXB0aW9uIChidXQgSW50ZWdlciNk
dXAgaXMgYWN0dWFsbHkgaW1wbGVtZW50ZWQsIHNvIEludGVnZXIucmVzcG9uZF90bz8gOmR1cCA9
PiB0cnVlKS4KCkludGVnZXIjZHVwIHNob3VsZCBmYWlsIHNpbGVudGx5LCByZXR1cm5pbmcgdGhl
IHJlY2VpdmVyLCBpbiB0aGUgc2FtZSB3YXkgYXMgSW50ZWdlciNmcmVlemUgZmFpbHMgc2lsZW50
bHkuIENpdGluZyBmcm9tICMxMTkyOSAoY29tbWVudCBieSBNaWtlIFZhc3RvbGEpOiAiSWYgdGhl
IG9iamVjdCBjYW4ndCBiZSBkdXBlZC9jbG9uZWQgYmVjYXVzZSBpdCdzIGFuIGltbWVkaWF0ZSwg
ZHVwL2Nsb25lIHNob3VsZCByZXR1cm4gdGhlIG9iamVjdCBpdHNlbGYuIChUaGVyZSBzaG91bGRu
J3QgYmUgYW55IGhhcm0gaW4gZG9pbmcgc28gc2luY2Ugbm90aGluZyBhYm91dCB0aGUgb2JqZWN0
IGNhbiBiZSBjaGFuZ2VkIGluIHRoZSBmaXJzdCBwbGFjZS4pIi4gQ2l0aW5nIHNvbWUgbW9yZToK
Cj4gSSBsaXRlcmFsbHkgY2FuJ3QgaW1hZ2luZSBhbnkgc2NlbmFyaW8gaW4gd2hpY2ggYSBkZXYs
IHdoZW4sIHNheSwgY29kaW5nIGEgY2xhc3Mgd2l0aCB0aGUgbGluZToKPiAKPiByZXR1cm4gdmFs
LmR1cC5mcmVlemUKPiAuLiByZWFsbHkgd2FudHMgYW4gRXhjZXB0aW9uIHRocm93biB3aGVuIHZh
bCBoYXBwZW5zIHRvIGJlIGRlLWZhY3RvIHVuLWR1cC1hYmxlLiBXaGF0IHRoZXkgcmVhbGx5IHdh
bnQgaXM6Cj4gCj4gcmV0dXJuIHZhbC5kdXAuZnJlZXplIHJlc2N1ZSB2YWwKClRoZSBwcm9wb3Nh
bCBhbHNvIGhhcyB0aGUgYWR2YW50YWdlIHRoYXQgaXQgbGVhZHMgdG8gYSBtdWNoIG1vcmUgdW5p
ZmllZCwgc3RyZWFtbGluZWQgcHJvdG9jb2wsIGF2b2lkaW5nIG5lZWRsZXNzIGV4cG9zaXRpb24g
b2YgaW50ZXJuYWxzLiBJdCB3b3VsZCBkbyBleGFjdGx5IHdoYXQgZHVwIChhbmQgY2xvbmUpIGFy
ZSBkZXNjcmliZWQgdG8gZG8sIG5hbWVseSAocHJldGVuZCB0bykgcmV0dXJuIGEgc2hhbGxvdyBj
b3B5LgoKCgotLSAKaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvCgpVbnN1YnNjcmliZTogPG1h
aWx0bzpydWJ5LWNvcmUtcmVxdWVzdEBydWJ5LWxhbmcub3JnP3N1YmplY3Q9dW5zdWJzY3JpYmU+
CjxodHRwOi8vbGlzdHMucnVieS1sYW5nLm9yZy9jZ2ktYmluL21haWxtYW4vb3B0aW9ucy9ydWJ5
LWNvcmU+Cg==

In This Thread

Prev Next