[ruby-core:89504] [Ruby trunk Bug#15240] Set operations check for is_a?(Set), rather than allowing duck typing

From: duerst@...
Date: 2018-10-22 04:23:53 UTC
List: ruby-core #89504
SXNzdWUgIzE1MjQwIGhhcyBiZWVuIHVwZGF0ZWQgYnkgZHVlcnN0IChNYXJ0aW4gRMO8cnN0KS4K
CgpIYXZpbmcgYSBwYXRjaCAodXNpbmcgLnJlc3BvbmRfdG8/LCBJJ2QgZ3Vlc3MpIHdvdWxkIHBy
b2JhYmx5IG1ha2UgYWNjZXB0YW5jZSBtdWNoIGVhc2llci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KQnVnICMxNTI0MDogU2V0IG9wZXJhdGlvbnMgY2hlY2sgZm9y
IGlzX2E/KFNldCksIHJhdGhlciB0aGFuIGFsbG93aW5nIGR1Y2sgdHlwaW5nCmh0dHBzOi8vYnVn
cy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xNTI0MCNjaGFuZ2UtNzQ1NTcKCiogQXV0aG9yOiBpdm9h
bmpvIChJdm8gQW5qbykKKiBTdGF0dXM6IE9wZW4KKiBQcmlvcml0eTogTm9ybWFsCiogQXNzaWdu
ZWU6IAoqIFRhcmdldCB2ZXJzaW9uOiAKKiBydWJ5IC12OiBydWJ5IDIuNS4zcDEwNSAoMjAxOC0x
MC0xOCByZXZpc2lvbiA2NTE1NikgW3g4Nl82NC1saW51eF0KKiBCYWNrcG9ydDogMi4zOiBVTktO
T1dOLCAyLjQ6IFVOS05PV04sIDIuNTogVU5LTk9XTgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCkhlbGxvIHRoZXJlIPCfkYsKClJ1YnkncyBgU2V0YCwgdW5saWtlIGBB
cnJheWAgb3IgYEhhc2hgLCBjYW5ub3QgZWFzaWx5IGludGVyb3BlcmF0ZSB3aXRoIHVzZXItY3Jl
YXRlZCBjbGFzc2VzIGFzIHNldmVyYWwgb3BlcmF0aW9ucyAoYCM9PWAsIGAjZmxhdHRlbmAsIGAj
ZmxhdHRlbiFgLCBgI2ludGVyc2VjdD9gLCBgI2Rpc2pvaW50P2AsIGAjc3Vic2V0P2AsIGAjcHJv
cGVyX3N1YnNldD9gLCBgI3N1cGVyc2V0P2AsIGAjcHJvcGVyX3N1cGVyc2V0P2ApIGNoZWNrIHRo
YXQgdGhlIG90aGVyIGNsYXNzIGBpc19hPyhTZXQpYCwgcmF0aGVyIHRoYW4gYWxsb3dpbmcgZHVj
ay10eXBpbmcuCgpFeGFtcGxlOgoKYGBgcnVieQpyZXF1aXJlICdzZXQnCmNsYXNzIE15U2V0CiAg
aW5jbHVkZSBFbnVtZXJhYmxlCiAgZGVmIGVhY2goJmJsb2NrKSBbOm15LCA6c2V0XS5lYWNoKCZi
bG9jaykgZW5kCiAgZGVmIHNpemUoKSB0b19hLnNpemUgZW5kCmVuZApwdXRzIFNldFs6c2V0XS5z
dWJzZXQ/KE15U2V0Lm5ldykKCj0+IFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToK
ICAgICAgICAxOiBmcm9tIHRlc3RjYXNlLnJiOjg6aW4gYDxtYWluPicKc2V0LnJiOjI5MjppbiBg
c3Vic2V0Pyc6IHZhbHVlIG11c3QgYmUgYSBzZXQgKEFyZ3VtZW50RXJyb3IpCmBgYAoKVGhlIG9u
bHkgd2F5IEkndmUgZm91bmQgb2YgZ29pbmcgYXJvdW5kIHRoaXMgaXNzdWUgYW5kIGxvb2tpbmcg
YXQgdGhlIFJ1Ynkgc291cmNlcywgaXMgdG8gZmFrZSBhIHJlc3BvbnNlIHRvIGBpc19hP2A6Cgpg
YGBydWJ5CnJlcXVpcmUgJ3NldCcKY2xhc3MgTXlTZXQKICBpbmNsdWRlIEVudW1lcmFibGUKICBk
ZWYgZWFjaCgmYmxvY2spIFs6bXksIDpzZXRdLmVhY2goJmJsb2NrKSBlbmQKICBkZWYgc2l6ZSgp
IHRvX2Euc2l6ZSBlbmQKICBkZWYgaXNfYT8oa2xhc3MpIHN1cGVyIHx8IGtsYXNzID09IFNldCBl
bmQgIyA8PT0gSGFjayEg8J+YrQplbmQKcHV0cyBTZXRbOnNldF0uc3Vic2V0PyhNeVNldC5uZXcp
Cgo9PiB0cnVlCmBgYAoKVGhpcyBpcyBhIHZlcnkgdWdseSBoYWNrLCBhbmQgaW5zdGVhZCBpdCB3
b3VsZCBiZSBuaWNlIGlmLCBpbnN0ZWFkLCBJIGNvdWxkIGp1c3QgcHJvdmlkZSBhIGB0b19zZXRg
IG1ldGhvZCB0aGF0IGBTZXRgIGNvdWxkIGNhbGwgdG8gYWxsb3cgZHVjayB0eXBpbmcuCgpJJ20g
d2lsbGluZyB0byB3b3JrIG9uIGEgcGF0Y2ggdG8gc29sdmUgdGhpcyAod291bGQgYmUgcHJldHR5
IG5pY2UgdG8gZG8gbXkgZmlyc3QgY29udHJpYnV0aW9uIHRvIFJ1YnkgY29yZSEpLCBzbyBob3Bl
ZnVsbHkgd2UgY2FuIGRpc2N1c3MgaG93IHRoaXMgcHJvYmxlbSBjYW4gYmUgdGFja2xlZC4KCi0t
LQoKIyMjIEJhY2tncm91bmQgLyBUTDtEUgoKVGhpcyBpc3N1ZSBjYW1lIGFib3V0IGFzIEkgYW0g
dGhlIGNyZWF0b3Igb2YgYSBnZW0gY2FsbGVkIFtwZXJzaXN0ZW50LfCfko5dKGh0dHBzOi8vZ2l0
bGFiLmNvbS9pdm9hbmpvL3BlcnNpc3RlbnQtZG1uZC8pLiBUaGlzIGdlbSBwcm92aWRlcyBpbW11
dGFibGUgYXJyYXlzLCBoYXNoZXMgYW5kIHNldHMuIE1vc3Qgb2YgdGhlIGhhcmQgd29yayBpcyBk
ZWxlZ2F0ZWQgdG8gYW5vdGhlciBnZW0gKFtoYW1zdGVyXShodHRwczovL2dpdGh1Yi5jb20vaGFt
c3RlcmdlbS9oYW1zdGVyKSksIGJ1dCBJJ3ZlIGFkZGVkIGEgbnVtYmVyIG9mIHR3ZWFrcyB0byBh
bGxvdyB0aGUgcGVyc2lzdGVudC3wn5KOIHZhcmlhbnRzIHRvIGVhc2lseSBpbnRlcm9wZXJhdGUg
d2l0aCB0aGVpciBSdWJ5IGNvdW50ZXJwYXJ0cy4KCkJlY2F1c2UgSSB3YW50ZWQgdG8gYWxsb3cg
YFBlcnNpc3RlbnTwn5KOOjpTZXRgIGluc3RhbmNlcyB0byBiZSB1c2VkIHRvZ2V0aGVyIHdpdGgg
UnVieSdzIGBTZXRgLCBJIHN0dWRpZWQgdGhlIGBzZXQucmJgIGltcGxlbWVudGF0aW9uIGFuZCBj
YW1lIHVwIHdpdGggdGhlIGBpc19hPyhTZXQpYCBoYWNrIGFib3ZlLiBUaGlzIHdvcmtzIG9uIGFs
bCBSdWJ5IHZlcnNpb25zIHRoZSBnZW0gc3VwcG9ydHMgKDEuOS0+Mi42KSwgYnV0IGJyb2tlIG9u
IEpSdWJ5IDkuMiB3aGVuIGEgbmV3IG9wdGltaXplZCBgU2V0YCBpbXBsZW1lbnRhdGlvbiB3YXMg
YWRkZWQsIHRoYXQgZGlkIG5vdCBkbyB0aGUgYGlzX2E/KFNldClgIGNoZWNrIGFuZCB0aHVzIGJy
b2tlIHRoZSBoYWNrLgoKSSd2ZSBicm91Z2h0IHVwIHRoaXMgaXNzdWUgd2l0aCB0aGUgSlJ1Ynkg
ZGV2ZWxvcGVycyAtLSA8aHR0cHM6Ly9naXRodWIuY29tL2pydWJ5L2pydWJ5L2lzc3Vlcy81MjI3
PiAtLSBhbmQgZnJvbSB0aGVyZSB3ZSBtb3ZlZCB0aGUgZGlzY3Vzc2lvbiB0byBydWJ5L3NwZWMg
LS0gPGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L3NwZWMvcHVsbC82Mjk+LgoKV2UgZW5kZWQgdXAg
Y29uY2x1ZGluZyB0aGF0IGl0IHdvdWxkIG1ha2Ugc2Vuc2UgdG8gcmFpc2UgdGhpcyBvbiB0aGUg
UnVieSB0cmFja2VyIGFzIHNvbWV0aGluZyB0aGF0IHNob3VsZCBiZSBmaXhlZCBvbiBgU2V0YCBp
dHNlbGYsIHJhdGhlciB0aGFuIGNvZGlmeWluZyB0aGlzIGhhY2sgYXMgc29tZXRoaW5nIHRoYXQg
UnVieSBpcyBleHBlY3RlZCB0byBzdXBwb3J0LgoKU2luY2UgUnVieSBzZXRzIGFscmVhZHkgc3Vw
cG9ydCBhbiBpbXBsaWNpdCBjb252ZXJzaW9uIG1ldGhvZCAtLSBgdG9fc2V0YCAtLSBpdCBzZWVt
cyBuYXR1cmFsIHRvIHJlcGxhY2UgdGhlIGBpc19hPyhTZXQpYCB3aXRoIHNvbWUga2luZCBvZiBg
b3RoZXIucmVzcG9uZF90bz8oOnRvX3NldCkgJiYgb3RoZXIgPSBvdGhlci50b19zZXRgIGluIGFs
bCBwbGFjZXMgd2hlcmUgdGhlIGBpc19hPyhTZXQpYCB3YXMgYmVpbmcgdXNlZC4gTm90ZSB0aGF0
IGhpcyB3b3VsZCBiZSBhbGwgdGhhdCdzIG5lZWRlZCB0byBiZSBhYmxlIHRvIHVzZSBhIGBTZXRg
IGR1Y2stdHlwZSAtLS0gdGhlIFtgUGVyc2lzdGVudPCfko46OlNldGAgc3BlY3NdKGh0dHBzOi8v
Z2l0bGFiLmNvbS9pdm9hbmpvL3BlcnNpc3RlbnQtZG1uZC9ibG9iL21hc3Rlci9zcGVjL3VuaXQv
c2V0X3NwZWMucmIpIGFyZSBhIHByZXR0eSBnb29kIHByb29mIG9mIGl0LgoKVGhhbmtzIGZvciB0
aGUgdGltZSDwn5mPLCBhbmQgcm9jayBvbiDwn5KqIQoKCgotLSAKaHR0cHM6Ly9idWdzLnJ1Ynkt
bGFuZy5vcmcvCgpVbnN1YnNjcmliZTogPG1haWx0bzpydWJ5LWNvcmUtcmVxdWVzdEBydWJ5LWxh
bmcub3JnP3N1YmplY3Q9dW5zdWJzY3JpYmU+CjxodHRwOi8vbGlzdHMucnVieS1sYW5nLm9yZy9j
Z2ktYmluL21haWxtYW4vb3B0aW9ucy9ydWJ5LWNvcmU+Cg==

In This Thread

Prev Next