<div dir="ltr"><div class="gmail_extra">Well, not possible in the general case, to be more precise. It would be possible in theory to teach the compiler about e.g. the comparison operators on built-in integral types, which don't involve any user code. It would only be appropriate as a warning rather than an error due to the inherent incompleteness of the analysis and the arbitrariness of what things to include in it. No opinion about whether it would be worth doing.<br>
</div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jun 1, 2014 at 10:40 AM, Corey Richardson <span dir="ltr"><<a href="mailto:corey@octayn.net" target="_blank">corey@octayn.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">We already *do* do this, but not for guards because that's not possible.<br>
<div class="HOEnZb"><div class="h5"><br>
On Sun, Jun 1, 2014 at 12:02 AM, Tommi <<a href="mailto:rusty.gates@icloud.com">rusty.gates@icloud.com</a>> wrote:<br>
> Would it be possible to get a compile-time error for a `match` branch that can never be reached due to a previous branch encompassing it. For example, for the middle branch here:<br>
><br>
> let n = 0;<br>
> match n {<br>
>     x if x < 2 => (),<br>
>     x if x < 1 => (),<br>
>     _ => ()<br>
> }<br>
><br>
> If this is a too complicated a problem in the general case, then perhaps there could be warnings for some (implementation defined) simple cases.<br>
><br>
> _______________________________________________<br>
> Rust-dev mailing list<br>
> <a href="mailto:Rust-dev@mozilla.org">Rust-dev@mozilla.org</a><br>
> <a href="https://mail.mozilla.org/listinfo/rust-dev" target="_blank">https://mail.mozilla.org/listinfo/rust-dev</a><br>
<br>
<br>
<br>
</div></div><span class="HOEnZb"><font color="#888888">--<br>
<a href="http://octayn.net/" target="_blank">http://octayn.net/</a><br>
</font></span><div class="HOEnZb"><div class="h5">_______________________________________________<br>
Rust-dev mailing list<br>
<a href="mailto:Rust-dev@mozilla.org">Rust-dev@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/rust-dev" target="_blank">https://mail.mozilla.org/listinfo/rust-dev</a><br>
</div></div></blockquote></div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Jun 1, 2014 at 10:40 AM, Corey Richardson <span dir="ltr"><<a href="mailto:corey@octayn.net" target="_blank">corey@octayn.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">We already *do* do this, but not for guards because that's not possible.<br>
<div class="HOEnZb"><div class="h5"><br>
On Sun, Jun 1, 2014 at 12:02 AM, Tommi <<a href="mailto:rusty.gates@icloud.com">rusty.gates@icloud.com</a>> wrote:<br>
> Would it be possible to get a compile-time error for a `match` branch that can never be reached due to a previous branch encompassing it. For example, for the middle branch here:<br>
><br>
> let n = 0;<br>
> match n {<br>
>     x if x < 2 => (),<br>
>     x if x < 1 => (),<br>
>     _ => ()<br>
> }<br>
><br>
> If this is a too complicated a problem in the general case, then perhaps there could be warnings for some (implementation defined) simple cases.<br>
><br>
> _______________________________________________<br>
> Rust-dev mailing list<br>
> <a href="mailto:Rust-dev@mozilla.org">Rust-dev@mozilla.org</a><br>
> <a href="https://mail.mozilla.org/listinfo/rust-dev" target="_blank">https://mail.mozilla.org/listinfo/rust-dev</a><br>
<br>
<br>
<br>
</div></div><span class="HOEnZb"><font color="#888888">--<br>
<a href="http://octayn.net/" target="_blank">http://octayn.net/</a><br>
</font></span><div class="HOEnZb"><div class="h5">_______________________________________________<br>
Rust-dev mailing list<br>
<a href="mailto:Rust-dev@mozilla.org">Rust-dev@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/rust-dev" target="_blank">https://mail.mozilla.org/listinfo/rust-dev</a><br>
</div></div></blockquote></div><br></div>