[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==