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

From: eregontp@...
Date: 2018-10-27 09:15:39 UTC
List: ruby-core #89572
SXNzdWUgIzE1MjQwIGhhcyBiZWVuIHVwZGF0ZWQgYnkgRXJlZ29uIChCZW5vaXQgRGFsb3plKS4K
CgpIYW5tYWMgKEhhbnMgTWFja293aWFrKSB3cm90ZToKPiBobSBpIGVzcGVjaWFsbHkgaGF0ZSBz
dWNoIHBhcnQgb2YgY29kZToKPiAKPiB+fn4gcnVieQo+IGNhc2UKPiB3aGVuIHNldC5pbnN0YW5j
ZV9vZj8oc2VsZi5jbGFzcykgJiYgQGhhc2gucmVzcG9uZF90bz8oOjwpCj4gICBAaGFzaCA8IHNl
dC5pbnN0YW5jZV92YXJpYWJsZV9nZXQoOkBoYXNoKQo+IHdoZW4gc2V0LmlzX2E/KFNldCkKPiAg
IHNpemUgPCBzZXQuc2l6ZSAmJiBhbGw/IHsgfG98IHNldC5pbmNsdWRlPyhvKSB9Cj4gZWxzZQo+
ICAgcmFpc2UgQXJndW1lbnRFcnJvciwgInZhbHVlIG11c3QgYmUgYSBzZXQiCj4gZW5kCj4gfn5+
Cj4gCj4gbXkgcHJvYmxlbSB3aXRoIHN1Y2ggY29kZSBpcyB0aGUgZW1wdHkgY2FzZSBwYXJ0IC4u
LiBpdCBqdXN0IGxvb2tzIHVnbHkgYmVjYXVzZSBpdCBpc24ndCBiZXR0ZXIgdGhhbiBhIGBpZiAu
Li4gZWxzZWlmIC4uLiBlbHNlIC4uLiBlbmRgIGNvbnN0cnVjdAoKRXhpc3RpbmcgY29kZSBzdHls
ZSBpcyBvcnRob2dvbmFsIHRvIHRoaXMgaXNzdWUuClBsZWFzZSBtYWtlIGEgc2VwYXJhdGUgaXNz
dWUgb3IgcHVsbCByZXF1ZXN0IGlmIHlvdSB3b3VsZCBsaWtlIHRvIGNoYW5nZSBpdCA6KQoKLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpCdWcgIzE1MjQwOiBTZXQgb3Bl
cmF0aW9ucyBjaGVjayBmb3IgaXNfYT8oU2V0KSwgcmF0aGVyIHRoYW4gYWxsb3dpbmcgZHVjayB0
eXBpbmcKaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE1MjQwI2NoYW5nZS03NDYx
OQoKKiBBdXRob3I6IGl2b2Fuam8gKEl2byBBbmpvKQoqIFN0YXR1czogT3BlbgoqIFByaW9yaXR5
OiBOb3JtYWwKKiBBc3NpZ25lZTogCiogVGFyZ2V0IHZlcnNpb246IAoqIHJ1YnkgLXY6IHJ1Ynkg
Mi41LjNwMTA1ICgyMDE4LTEwLTE4IHJldmlzaW9uIDY1MTU2KSBbeDg2XzY0LWxpbnV4XQoqIEJh
Y2twb3J0OiAyLjM6IFVOS05PV04sIDIuNDogVU5LTk9XTiwgMi41OiBVTktOT1dOCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSGVsbG8gdGhlcmUg8J+RiwoKUnVieSdz
IGBTZXRgLCB1bmxpa2UgYEFycmF5YCBvciBgSGFzaGAsIGNhbm5vdCBlYXNpbHkgaW50ZXJvcGVy
YXRlIHdpdGggdXNlci1jcmVhdGVkIGNsYXNzZXMgYXMgc2V2ZXJhbCBvcGVyYXRpb25zIChgIz09
YCwgYCNmbGF0dGVuYCwgYCNmbGF0dGVuIWAsIGAjaW50ZXJzZWN0P2AsIGAjZGlzam9pbnQ/YCwg
YCNzdWJzZXQ/YCwgYCNwcm9wZXJfc3Vic2V0P2AsIGAjc3VwZXJzZXQ/YCwgYCNwcm9wZXJfc3Vw
ZXJzZXQ/YCkgY2hlY2sgdGhhdCB0aGUgb3RoZXIgY2xhc3MgYGlzX2E/KFNldClgLCByYXRoZXIg
dGhhbiBhbGxvd2luZyBkdWNrLXR5cGluZy4KCkV4YW1wbGU6CgpgYGBydWJ5CnJlcXVpcmUgJ3Nl
dCcKY2xhc3MgTXlTZXQKICBpbmNsdWRlIEVudW1lcmFibGUKICBkZWYgZWFjaCgmYmxvY2spIFs6
bXksIDpzZXRdLmVhY2goJmJsb2NrKSBlbmQKICBkZWYgc2l6ZSgpIHRvX2Euc2l6ZSBlbmQKZW5k
CnB1dHMgU2V0WzpzZXRdLnN1YnNldD8oTXlTZXQubmV3KQoKPT4gVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgogICAgICAgIDE6IGZyb20gdGVzdGNhc2UucmI6ODppbiBgPG1haW4+
JwpzZXQucmI6MjkyOmluIGBzdWJzZXQ/JzogdmFsdWUgbXVzdCBiZSBhIHNldCAoQXJndW1lbnRF
cnJvcikKYGBgCgpUaGUgb25seSB3YXkgSSd2ZSBmb3VuZCBvZiBnb2luZyBhcm91bmQgdGhpcyBp
c3N1ZSBhbmQgbG9va2luZyBhdCB0aGUgUnVieSBzb3VyY2VzLCBpcyB0byBmYWtlIGEgcmVzcG9u
c2UgdG8gYGlzX2E/YDoKCmBgYHJ1YnkKcmVxdWlyZSAnc2V0JwpjbGFzcyBNeVNldAogIGluY2x1
ZGUgRW51bWVyYWJsZQogIGRlZiBlYWNoKCZibG9jaykgWzpteSwgOnNldF0uZWFjaCgmYmxvY2sp
IGVuZAogIGRlZiBzaXplKCkgdG9fYS5zaXplIGVuZAogIGRlZiBpc19hPyhrbGFzcykgc3VwZXIg
fHwga2xhc3MgPT0gU2V0IGVuZCAjIDw9PSBIYWNrISDwn5itCmVuZApwdXRzIFNldFs6c2V0XS5z
dWJzZXQ/KE15U2V0Lm5ldykKCj0+IHRydWUKYGBgCgpUaGlzIGlzIGEgdmVyeSB1Z2x5IGhhY2ss
IGFuZCBpbnN0ZWFkIGl0IHdvdWxkIGJlIG5pY2UgaWYsIGluc3RlYWQsIEkgY291bGQganVzdCBw
cm92aWRlIGEgYHRvX3NldGAgbWV0aG9kIHRoYXQgYFNldGAgY291bGQgY2FsbCB0byBhbGxvdyBk
dWNrIHR5cGluZy4KCkknbSB3aWxsaW5nIHRvIHdvcmsgb24gYSBwYXRjaCB0byBzb2x2ZSB0aGlz
ICh3b3VsZCBiZSBwcmV0dHkgbmljZSB0byBkbyBteSBmaXJzdCBjb250cmlidXRpb24gdG8gUnVi
eSBjb3JlISksIHNvIGhvcGVmdWxseSB3ZSBjYW4gZGlzY3VzcyBob3cgdGhpcyBwcm9ibGVtIGNh
biBiZSB0YWNrbGVkLgoKLS0tCgojIyMgQmFja2dyb3VuZCAvIFRMO0RSCgpUaGlzIGlzc3VlIGNh
bWUgYWJvdXQgYXMgSSBhbSB0aGUgY3JlYXRvciBvZiBhIGdlbSBjYWxsZWQgW3BlcnNpc3RlbnQt
8J+Sjl0oaHR0cHM6Ly9naXRsYWIuY29tL2l2b2Fuam8vcGVyc2lzdGVudC1kbW5kLykuIFRoaXMg
Z2VtIHByb3ZpZGVzIGltbXV0YWJsZSBhcnJheXMsIGhhc2hlcyBhbmQgc2V0cy4gTW9zdCBvZiB0
aGUgaGFyZCB3b3JrIGlzIGRlbGVnYXRlZCB0byBhbm90aGVyIGdlbSAoW2hhbXN0ZXJdKGh0dHBz
Oi8vZ2l0aHViLmNvbS9oYW1zdGVyZ2VtL2hhbXN0ZXIpKSwgYnV0IEkndmUgYWRkZWQgYSBudW1i
ZXIgb2YgdHdlYWtzIHRvIGFsbG93IHRoZSBwZXJzaXN0ZW50LfCfko4gdmFyaWFudHMgdG8gZWFz
aWx5IGludGVyb3BlcmF0ZSB3aXRoIHRoZWlyIFJ1YnkgY291bnRlcnBhcnRzLgoKQmVjYXVzZSBJ
IHdhbnRlZCB0byBhbGxvdyBgUGVyc2lzdGVudPCfko46OlNldGAgaW5zdGFuY2VzIHRvIGJlIHVz
ZWQgdG9nZXRoZXIgd2l0aCBSdWJ5J3MgYFNldGAsIEkgc3R1ZGllZCB0aGUgYHNldC5yYmAgaW1w
bGVtZW50YXRpb24gYW5kIGNhbWUgdXAgd2l0aCB0aGUgYGlzX2E/KFNldClgIGhhY2sgYWJvdmUu
IFRoaXMgd29ya3Mgb24gYWxsIFJ1YnkgdmVyc2lvbnMgdGhlIGdlbSBzdXBwb3J0cyAoMS45LT4y
LjYpLCBidXQgYnJva2Ugb24gSlJ1YnkgOS4yIHdoZW4gYSBuZXcgb3B0aW1pemVkIGBTZXRgIGlt
cGxlbWVudGF0aW9uIHdhcyBhZGRlZCwgdGhhdCBkaWQgbm90IGRvIHRoZSBgaXNfYT8oU2V0KWAg
Y2hlY2sgYW5kIHRodXMgYnJva2UgdGhlIGhhY2suCgpJJ3ZlIGJyb3VnaHQgdXAgdGhpcyBpc3N1
ZSB3aXRoIHRoZSBKUnVieSBkZXZlbG9wZXJzIC0tIDxodHRwczovL2dpdGh1Yi5jb20vanJ1Ynkv
anJ1YnkvaXNzdWVzLzUyMjc+IC0tIGFuZCBmcm9tIHRoZXJlIHdlIG1vdmVkIHRoZSBkaXNjdXNz
aW9uIHRvIHJ1Ynkvc3BlYyAtLSA8aHR0cHM6Ly9naXRodWIuY29tL3J1Ynkvc3BlYy9wdWxsLzYy
OT4uCgpXZSBlbmRlZCB1cCBjb25jbHVkaW5nIHRoYXQgaXQgd291bGQgbWFrZSBzZW5zZSB0byBy
YWlzZSB0aGlzIG9uIHRoZSBSdWJ5IHRyYWNrZXIgYXMgc29tZXRoaW5nIHRoYXQgc2hvdWxkIGJl
IGZpeGVkIG9uIGBTZXRgIGl0c2VsZiwgcmF0aGVyIHRoYW4gY29kaWZ5aW5nIHRoaXMgaGFjayBh
cyBzb21ldGhpbmcgdGhhdCBSdWJ5IGlzIGV4cGVjdGVkIHRvIHN1cHBvcnQuCgpTaW5jZSBSdWJ5
IHNldHMgYWxyZWFkeSBzdXBwb3J0IGFuIGltcGxpY2l0IGNvbnZlcnNpb24gbWV0aG9kIC0tIGB0
b19zZXRgIC0tIGl0IHNlZW1zIG5hdHVyYWwgdG8gcmVwbGFjZSB0aGUgYGlzX2E/KFNldClgIHdp
dGggc29tZSBraW5kIG9mIGBvdGhlci5yZXNwb25kX3RvPyg6dG9fc2V0KSAmJiBvdGhlciA9IG90
aGVyLnRvX3NldGAgaW4gYWxsIHBsYWNlcyB3aGVyZSB0aGUgYGlzX2E/KFNldClgIHdhcyBiZWlu
ZyB1c2VkLiBOb3RlIHRoYXQgaGlzIHdvdWxkIGJlIGFsbCB0aGF0J3MgbmVlZGVkIHRvIGJlIGFi
bGUgdG8gdXNlIGEgYFNldGAgZHVjay10eXBlIC0tLSB0aGUgW2BQZXJzaXN0ZW508J+Sjjo6U2V0
YCBzcGVjc10oaHR0cHM6Ly9naXRsYWIuY29tL2l2b2Fuam8vcGVyc2lzdGVudC1kbW5kL2Jsb2Iv
bWFzdGVyL3NwZWMvdW5pdC9zZXRfc3BlYy5yYikgYXJlIGEgcHJldHR5IGdvb2QgcHJvb2Ygb2Yg
aXQuCgpUaGFua3MgZm9yIHRoZSB0aW1lIPCfmY8sIGFuZCByb2NrIG9uIPCfkqohCgoKCi0tIApo
dHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8KClVuc3Vic2NyaWJlOiA8bWFpbHRvOnJ1YnktY29y
ZS1yZXF1ZXN0QHJ1YnktbGFuZy5vcmc/c3ViamVjdD11bnN1YnNjcmliZT4KPGh0dHA6Ly9saXN0
cy5ydWJ5LWxhbmcub3JnL2NnaS1iaW4vbWFpbG1hbi9vcHRpb25zL3J1YnktY29yZT4K

In This Thread

Prev Next