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

From: knuckles@...
Date: 2018-10-22 21:53:11 UTC
List: ruby-core #89515
SXNzdWUgIzE1MjQwIGhhcyBiZWVuIHVwZGF0ZWQgYnkgaXZvYW5qbyAoSXZvIEFuam8pLgoKClRo
YW5rcyBldmVyeW9uZSBmb3IgdGhlIGZlZWRiYWNrISBBcyBzdWdnZXN0ZWQsIEknbGwgd2FpdCBh
IGZldyBtb3JlIGRheXMgZm9yIG1vcmUgZmVlZGJhY2ssIGFuZCB0aGVuIGNvbWUgdXAgd2l0aCBh
biBleHBlcmltZW50YWwgcGF0Y2ggdGhhdCBjYW4gc2VydmUgYXMgYSBiYXNpcyBmb3IgZnVydGhl
ciBzdWdnZXN0aW9uIChhbmQgZm9yIGFkZGluZyB0aGlzIHRvIHRoZSBuZXh0IGRldmVsb3BlciBt
ZWV0aW5nKS4KCkBIYW5zOiBUaGVyZSBpcyBkZWZpbml0ZWx5IGEgbG90IG9mIG9wcG9ydHVuaXR5
IHRvIGNsZWFuIHVwIGFuZCBvcHRpbWl6ZSBTZXQgLS0gSlJ1YnkgZ290IGEgbmV3IEphdmEgcG9y
dCBmb3IgOS4yLjAuMCBhbmQgYXMgYSByZXN1bHQgZ290IGEgbmljZSBzcGVlZCB1cC4KCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQnVnICMxNTI0MDogU2V0IG9wZXJh
dGlvbnMgY2hlY2sgZm9yIGlzX2E/KFNldCksIHJhdGhlciB0aGFuIGFsbG93aW5nIGR1Y2sgdHlw
aW5nCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xNTI0MCNjaGFuZ2UtNzQ1NjgK
CiogQXV0aG9yOiBpdm9hbmpvIChJdm8gQW5qbykKKiBTdGF0dXM6IE9wZW4KKiBQcmlvcml0eTog
Tm9ybWFsCiogQXNzaWduZWU6IAoqIFRhcmdldCB2ZXJzaW9uOiAKKiBydWJ5IC12OiBydWJ5IDIu
NS4zcDEwNSAoMjAxOC0xMC0xOCByZXZpc2lvbiA2NTE1NikgW3g4Nl82NC1saW51eF0KKiBCYWNr
cG9ydDogMi4zOiBVTktOT1dOLCAyLjQ6IFVOS05PV04sIDIuNTogVU5LTk9XTgotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkhlbGxvIHRoZXJlIPCfkYsKClJ1YnkncyBg
U2V0YCwgdW5saWtlIGBBcnJheWAgb3IgYEhhc2hgLCBjYW5ub3QgZWFzaWx5IGludGVyb3BlcmF0
ZSB3aXRoIHVzZXItY3JlYXRlZCBjbGFzc2VzIGFzIHNldmVyYWwgb3BlcmF0aW9ucyAoYCM9PWAs
IGAjZmxhdHRlbmAsIGAjZmxhdHRlbiFgLCBgI2ludGVyc2VjdD9gLCBgI2Rpc2pvaW50P2AsIGAj
c3Vic2V0P2AsIGAjcHJvcGVyX3N1YnNldD9gLCBgI3N1cGVyc2V0P2AsIGAjcHJvcGVyX3N1cGVy
c2V0P2ApIGNoZWNrIHRoYXQgdGhlIG90aGVyIGNsYXNzIGBpc19hPyhTZXQpYCwgcmF0aGVyIHRo
YW4gYWxsb3dpbmcgZHVjay10eXBpbmcuCgpFeGFtcGxlOgoKYGBgcnVieQpyZXF1aXJlICdzZXQn
CmNsYXNzIE15U2V0CiAgaW5jbHVkZSBFbnVtZXJhYmxlCiAgZGVmIGVhY2goJmJsb2NrKSBbOm15
LCA6c2V0XS5lYWNoKCZibG9jaykgZW5kCiAgZGVmIHNpemUoKSB0b19hLnNpemUgZW5kCmVuZApw
dXRzIFNldFs6c2V0XS5zdWJzZXQ/KE15U2V0Lm5ldykKCj0+IFRyYWNlYmFjayAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KToKICAgICAgICAxOiBmcm9tIHRlc3RjYXNlLnJiOjg6aW4gYDxtYWluPicK
c2V0LnJiOjI5MjppbiBgc3Vic2V0Pyc6IHZhbHVlIG11c3QgYmUgYSBzZXQgKEFyZ3VtZW50RXJy
b3IpCmBgYAoKVGhlIG9ubHkgd2F5IEkndmUgZm91bmQgb2YgZ29pbmcgYXJvdW5kIHRoaXMgaXNz
dWUgYW5kIGxvb2tpbmcgYXQgdGhlIFJ1Ynkgc291cmNlcywgaXMgdG8gZmFrZSBhIHJlc3BvbnNl
IHRvIGBpc19hP2A6CgpgYGBydWJ5CnJlcXVpcmUgJ3NldCcKY2xhc3MgTXlTZXQKICBpbmNsdWRl
IEVudW1lcmFibGUKICBkZWYgZWFjaCgmYmxvY2spIFs6bXksIDpzZXRdLmVhY2goJmJsb2NrKSBl
bmQKICBkZWYgc2l6ZSgpIHRvX2Euc2l6ZSBlbmQKICBkZWYgaXNfYT8oa2xhc3MpIHN1cGVyIHx8
IGtsYXNzID09IFNldCBlbmQgIyA8PT0gSGFjayEg8J+YrQplbmQKcHV0cyBTZXRbOnNldF0uc3Vi
c2V0PyhNeVNldC5uZXcpCgo9PiB0cnVlCmBgYAoKVGhpcyBpcyBhIHZlcnkgdWdseSBoYWNrLCBh
bmQgaW5zdGVhZCBpdCB3b3VsZCBiZSBuaWNlIGlmLCBpbnN0ZWFkLCBJIGNvdWxkIGp1c3QgcHJv
dmlkZSBhIGB0b19zZXRgIG1ldGhvZCB0aGF0IGBTZXRgIGNvdWxkIGNhbGwgdG8gYWxsb3cgZHVj
ayB0eXBpbmcuCgpJJ20gd2lsbGluZyB0byB3b3JrIG9uIGEgcGF0Y2ggdG8gc29sdmUgdGhpcyAo
d291bGQgYmUgcHJldHR5IG5pY2UgdG8gZG8gbXkgZmlyc3QgY29udHJpYnV0aW9uIHRvIFJ1Ynkg
Y29yZSEpLCBzbyBob3BlZnVsbHkgd2UgY2FuIGRpc2N1c3MgaG93IHRoaXMgcHJvYmxlbSBjYW4g
YmUgdGFja2xlZC4KCi0tLQoKIyMjIEJhY2tncm91bmQgLyBUTDtEUgoKVGhpcyBpc3N1ZSBjYW1l
IGFib3V0IGFzIEkgYW0gdGhlIGNyZWF0b3Igb2YgYSBnZW0gY2FsbGVkIFtwZXJzaXN0ZW50LfCf
ko5dKGh0dHBzOi8vZ2l0bGFiLmNvbS9pdm9hbmpvL3BlcnNpc3RlbnQtZG1uZC8pLiBUaGlzIGdl
bSBwcm92aWRlcyBpbW11dGFibGUgYXJyYXlzLCBoYXNoZXMgYW5kIHNldHMuIE1vc3Qgb2YgdGhl
IGhhcmQgd29yayBpcyBkZWxlZ2F0ZWQgdG8gYW5vdGhlciBnZW0gKFtoYW1zdGVyXShodHRwczov
L2dpdGh1Yi5jb20vaGFtc3RlcmdlbS9oYW1zdGVyKSksIGJ1dCBJJ3ZlIGFkZGVkIGEgbnVtYmVy
IG9mIHR3ZWFrcyB0byBhbGxvdyB0aGUgcGVyc2lzdGVudC3wn5KOIHZhcmlhbnRzIHRvIGVhc2ls
eSBpbnRlcm9wZXJhdGUgd2l0aCB0aGVpciBSdWJ5IGNvdW50ZXJwYXJ0cy4KCkJlY2F1c2UgSSB3
YW50ZWQgdG8gYWxsb3cgYFBlcnNpc3RlbnTwn5KOOjpTZXRgIGluc3RhbmNlcyB0byBiZSB1c2Vk
IHRvZ2V0aGVyIHdpdGggUnVieSdzIGBTZXRgLCBJIHN0dWRpZWQgdGhlIGBzZXQucmJgIGltcGxl
bWVudGF0aW9uIGFuZCBjYW1lIHVwIHdpdGggdGhlIGBpc19hPyhTZXQpYCBoYWNrIGFib3ZlLiBU
aGlzIHdvcmtzIG9uIGFsbCBSdWJ5IHZlcnNpb25zIHRoZSBnZW0gc3VwcG9ydHMgKDEuOS0+Mi42
KSwgYnV0IGJyb2tlIG9uIEpSdWJ5IDkuMiB3aGVuIGEgbmV3IG9wdGltaXplZCBgU2V0YCBpbXBs
ZW1lbnRhdGlvbiB3YXMgYWRkZWQsIHRoYXQgZGlkIG5vdCBkbyB0aGUgYGlzX2E/KFNldClgIGNo
ZWNrIGFuZCB0aHVzIGJyb2tlIHRoZSBoYWNrLgoKSSd2ZSBicm91Z2h0IHVwIHRoaXMgaXNzdWUg
d2l0aCB0aGUgSlJ1YnkgZGV2ZWxvcGVycyAtLSA8aHR0cHM6Ly9naXRodWIuY29tL2pydWJ5L2py
dWJ5L2lzc3Vlcy81MjI3PiAtLSBhbmQgZnJvbSB0aGVyZSB3ZSBtb3ZlZCB0aGUgZGlzY3Vzc2lv
biB0byBydWJ5L3NwZWMgLS0gPGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L3NwZWMvcHVsbC82Mjk+
LgoKV2UgZW5kZWQgdXAgY29uY2x1ZGluZyB0aGF0IGl0IHdvdWxkIG1ha2Ugc2Vuc2UgdG8gcmFp
c2UgdGhpcyBvbiB0aGUgUnVieSB0cmFja2VyIGFzIHNvbWV0aGluZyB0aGF0IHNob3VsZCBiZSBm
aXhlZCBvbiBgU2V0YCBpdHNlbGYsIHJhdGhlciB0aGFuIGNvZGlmeWluZyB0aGlzIGhhY2sgYXMg
c29tZXRoaW5nIHRoYXQgUnVieSBpcyBleHBlY3RlZCB0byBzdXBwb3J0LgoKU2luY2UgUnVieSBz
ZXRzIGFscmVhZHkgc3VwcG9ydCBhbiBpbXBsaWNpdCBjb252ZXJzaW9uIG1ldGhvZCAtLSBgdG9f
c2V0YCAtLSBpdCBzZWVtcyBuYXR1cmFsIHRvIHJlcGxhY2UgdGhlIGBpc19hPyhTZXQpYCB3aXRo
IHNvbWUga2luZCBvZiBgb3RoZXIucmVzcG9uZF90bz8oOnRvX3NldCkgJiYgb3RoZXIgPSBvdGhl
ci50b19zZXRgIGluIGFsbCBwbGFjZXMgd2hlcmUgdGhlIGBpc19hPyhTZXQpYCB3YXMgYmVpbmcg
dXNlZC4gTm90ZSB0aGF0IGhpcyB3b3VsZCBiZSBhbGwgdGhhdCdzIG5lZWRlZCB0byBiZSBhYmxl
IHRvIHVzZSBhIGBTZXRgIGR1Y2stdHlwZSAtLS0gdGhlIFtgUGVyc2lzdGVudPCfko46OlNldGAg
c3BlY3NdKGh0dHBzOi8vZ2l0bGFiLmNvbS9pdm9hbmpvL3BlcnNpc3RlbnQtZG1uZC9ibG9iL21h
c3Rlci9zcGVjL3VuaXQvc2V0X3NwZWMucmIpIGFyZSBhIHByZXR0eSBnb29kIHByb29mIG9mIGl0
LgoKVGhhbmtzIGZvciB0aGUgdGltZSDwn5mPLCBhbmQgcm9jayBvbiDwn5KqIQoKCgotLSAKaHR0
cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvCgpVbnN1YnNjcmliZTogPG1haWx0bzpydWJ5LWNvcmUt
cmVxdWVzdEBydWJ5LWxhbmcub3JnP3N1YmplY3Q9dW5zdWJzY3JpYmU+CjxodHRwOi8vbGlzdHMu
cnVieS1sYW5nLm9yZy9jZ2ktYmluL21haWxtYW4vb3B0aW9ucy9ydWJ5LWNvcmU+Cg==

In This Thread

Prev Next