<div dir="ltr"><div class="markdown-here-wrapper" style=""><p style="margin:0px 0px 1.2em!important">Several proposals will follow this one: allowing multiple error types, removing <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">Error</code>, replacing <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">rethrows</code>, etc.<br>Those topics are more controversial, but fortunately for them, they mostly add on top of the core feature being discussed.<br>So IMO, if a detail can be split into its own proposal, we should just do it and forget about it for a little while.</p>
<p style="margin:0px 0px 1.2em!important">2017-02-17 23:16 GMT+03:00 Tino Heth &lt;<a href="mailto:2th@gmx.de" target="_blank">2th@gmx.de</a>&gt;:</p>
<p style="margin:0px 0px 1.2em!important"></p><div class="markdown-here-exclude"><p></p><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><span class=""><div><br><blockquote type="cite"><div><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important">I thought it was going to be any one subtype of<span class="m_-990960559194556099Apple-converted-space"> </span></span><code style="font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;display:inline">Error</code><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important">, be it a struct, an enum, or a protocol existential, or<span class="m_-990960559194556099Apple-converted-space"> </span></span><code style="font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;display:inline">Error</code><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important"><span class="m_-990960559194556099Apple-converted-space"> </span>itself.</span></div></blockquote></div><br></span><div>Imho we should remove the restriction that you can only throw Error-conforming types if typed throws are added:</div><div>It&#39;s a compatibility feature, and if you manually declare what can be thrown, you should be allowed to break with Objective-C.</div><div><br></div><div>As Error has no requirements at all, it looks like harassment, as its whole magic is neither visible nor necessary.</div><div><br></div></div></blockquote><p></p></div><p style="margin:0px 0px 1.2em!important"></p>
<div title="MDH:U2V2ZXJhbCBwcm9wb3NhbHMgd2lsbCBmb2xsb3cgdGhpcyBvbmU6IGFsbG93aW5nIG11bHRpcGxl
IGVycm9yIHR5cGVzLCByZW1vdmluZyBgRXJyb3JgLCByZXBsYWNpbmcgYHJldGhyb3dzYCwgZXRj
LjxkaXY+VGhvc2UgdG9waWNzIGFyZSBtb3JlIGNvbnRyb3ZlcnNpYWwsIGJ1dCBmb3J0dW5hdGVs
eSBmb3IgdGhlbSwgdGhleSBtb3N0bHkgYWRkIG9uIHRvcCBvZiB0aGUgY29yZSBmZWF0dXJlIGJl
aW5nIGRpc2N1c3NlZC48L2Rpdj48ZGl2PlNvIElNTywgaWYgYSBkZXRhaWwgY2FuIGJlIHNwbGl0
IGludG8gaXRzIG93biBwcm9wb3NhbCwgd2Ugc2hvdWxkIGp1c3QgZG8gaXQgYW5kIGZvcmdldCBh
Ym91dCBpdCBmb3IgYSBsaXR0bGUgd2hpbGUuPGJyPjxkaXYgY2xhc3M9ImdtYWlsX2V4dHJhIj48
YnI+PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPjIwMTctMDItMTcgMjM6MTYgR01UKzAzOjAwIFRp
bm8gSGV0aCA8c3BhbiBkaXI9Imx0ciI+Jmx0OzxhIGhyZWY9Im1haWx0bzoydGhAZ214LmRlIiB0
YXJnZXQ9Il9ibGFuayI+MnRoQGdteC5kZTwvYT4mZ3Q7PC9zcGFuPjo8YnI+PGJsb2NrcXVvdGUg
Y2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjAgMCAwIC44ZXg7Ym9yZGVyLWxlZnQ6
MXB4ICNjY2Mgc29saWQ7cGFkZGluZy1sZWZ0OjFleCI+PGRpdiBzdHlsZT0id29yZC13cmFwOmJy
ZWFrLXdvcmQiPjxzcGFuIGNsYXNzPSIiPjxkaXY+PGJyPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUi
PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OkhlbHZldGljYTtmb250LXNpemU6MTJweDtm
b250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQtY2Fwczpub3JtYWw7Zm9udC13ZWlnaHQ6bm9y
bWFsO2xldHRlci1zcGFjaW5nOm5vcm1hbDt0ZXh0LWFsaWduOnN0YXJ0O3RleHQtaW5kZW50OjBw
eDt0ZXh0LXRyYW5zZm9ybTpub25lO3doaXRlLXNwYWNlOm5vcm1hbDt3b3JkLXNwYWNpbmc6MHB4
O2Zsb2F0Om5vbmU7ZGlzcGxheTppbmxpbmUhaW1wb3J0YW50Ij5JIHRob3VnaHQgaXQgd2FzIGdv
aW5nIHRvIGJlIGFueSBvbmUgc3VidHlwZSBvZjxzcGFuIGNsYXNzPSJtXy05OTA5NjA1NTkxOTQ1
NTYwOTlBcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48L3NwYW4+PGNvZGUgc3R5
bGU9ImZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudC1jYXBzOm5vcm1hbDtmb250LXdlaWdo
dDpub3JtYWw7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO3RleHQtYWxpZ246c3RhcnQ7dGV4dC1pbmRl
bnQ6MHB4O3RleHQtdHJhbnNmb3JtOm5vbmU7d29yZC1zcGFjaW5nOjBweDtmb250LXNpemU6MC44
NWVtO2ZvbnQtZmFtaWx5OkNvbnNvbGFzLEluY29uc29sYXRhLENvdXJpZXIsbW9ub3NwYWNlO21h
cmdpbjowcHggMC4xNWVtO3BhZGRpbmc6MHB4IDAuM2VtO3doaXRlLXNwYWNlOnByZS13cmFwO2Jv
cmRlcjoxcHggc29saWQgcmdiKDIzNCwyMzQsMjM0KTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDgs
MjQ4LDI0OCk7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRp
dXM6M3B4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjNweDtib3JkZXItYm90dG9tLWxlZnQt
cmFkaXVzOjNweDtkaXNwbGF5OmlubGluZSI+RXJyb3I8L2NvZGU+PHNwYW4gc3R5bGU9ImZvbnQt
ZmFtaWx5OkhlbHZldGljYTtmb250LXNpemU6MTJweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZh
cmlhbnQtY2Fwczpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2xldHRlci1zcGFjaW5nOm5vcm1h
bDt0ZXh0LWFsaWduOnN0YXJ0O3RleHQtaW5kZW50OjBweDt0ZXh0LXRyYW5zZm9ybTpub25lO3do
aXRlLXNwYWNlOm5vcm1hbDt3b3JkLXNwYWNpbmc6MHB4O2Zsb2F0Om5vbmU7ZGlzcGxheTppbmxp
bmUhaW1wb3J0YW50Ij4sIGJlIGl0IGEgc3RydWN0LCBhbiBlbnVtLCBvciBhIHByb3RvY29sIGV4
aXN0ZW50aWFsLCBvcjxzcGFuIGNsYXNzPSJtXy05OTA5NjA1NTkxOTQ1NTYwOTlBcHBsZS1jb252
ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48L3NwYW4+PGNvZGUgc3R5bGU9ImZvbnQtc3R5bGU6
bm9ybWFsO2ZvbnQtdmFyaWFudC1jYXBzOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7bGV0dGVy
LXNwYWNpbmc6bm9ybWFsO3RleHQtYWxpZ246c3RhcnQ7dGV4dC1pbmRlbnQ6MHB4O3RleHQtdHJh
bnNmb3JtOm5vbmU7d29yZC1zcGFjaW5nOjBweDtmb250LXNpemU6MC44NWVtO2ZvbnQtZmFtaWx5
OkNvbnNvbGFzLEluY29uc29sYXRhLENvdXJpZXIsbW9ub3NwYWNlO21hcmdpbjowcHggMC4xNWVt
O3BhZGRpbmc6MHB4IDAuM2VtO3doaXRlLXNwYWNlOnByZS13cmFwO2JvcmRlcjoxcHggc29saWQg
cmdiKDIzNCwyMzQsMjM0KTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDgsMjQ4LDI0OCk7Ym9yZGVy
LXRvcC1sZWZ0LXJhZGl1czozcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4O2JvcmRlci1i
b3R0b20tcmlnaHQtcmFkaXVzOjNweDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjNweDtkaXNw
bGF5OmlubGluZSI+RXJyb3I8L2NvZGU+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OkhlbHZldGlj
YTtmb250LXNpemU6MTJweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQtY2Fwczpub3Jt
YWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2xldHRlci1zcGFjaW5nOm5vcm1hbDt0ZXh0LWFsaWduOnN0
YXJ0O3RleHQtaW5kZW50OjBweDt0ZXh0LXRyYW5zZm9ybTpub25lO3doaXRlLXNwYWNlOm5vcm1h
bDt3b3JkLXNwYWNpbmc6MHB4O2Zsb2F0Om5vbmU7ZGlzcGxheTppbmxpbmUhaW1wb3J0YW50Ij48
c3BhbiBjbGFzcz0ibV8tOTkwOTYwNTU5MTk0NTU2MDk5QXBwbGUtY29udmVydGVkLXNwYWNlIj4m
bmJzcDs8L3NwYW4+aXRzZWxmLjwvc3Bhbj48L2Rpdj48L2Jsb2NrcXVvdGU+PC9kaXY+PGJyPjwv
c3Bhbj48ZGl2PkltaG8gd2Ugc2hvdWxkIHJlbW92ZSB0aGUgcmVzdHJpY3Rpb24gdGhhdCB5b3Ug
Y2FuIG9ubHkgdGhyb3cgRXJyb3ItY29uZm9ybWluZyB0eXBlcyBpZiB0eXBlZCB0aHJvd3MgYXJl
IGFkZGVkOjwvZGl2PjxkaXY+SXQncyBhIGNvbXBhdGliaWxpdHkgZmVhdHVyZSwgYW5kIGlmIHlv
dSBtYW51YWxseSBkZWNsYXJlIHdoYXQgY2FuIGJlIHRocm93biwgeW91IHNob3VsZCBiZSBhbGxv
d2VkIHRvIGJyZWFrIHdpdGggT2JqZWN0aXZlLUMuPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5B
cyBFcnJvciBoYXMgbm8gcmVxdWlyZW1lbnRzIGF0IGFsbCwgaXQgbG9va3MgbGlrZSZuYnNwO2hh
cmFzc21lbnQsIGFzIGl0cyB3aG9sZSBtYWdpYyBpcyBuZWl0aGVyIHZpc2libGUgbm9yIG5lY2Vz
c2FyeS48L2Rpdj48ZGl2Pjxicj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PC9kaXY+PGJyPjwv
ZGl2PjwvZGl2Pg==" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0">​</div></div></div>