diff options
| author | Brian Koropoff <bkoropoff@gmail.com> | 2014-09-19 21:09:59 -0700 |
|---|---|---|
| committer | Brian Koropoff <bkoropoff@gmail.com> | 2014-09-20 00:18:08 -0700 |
| commit | 31f6d45a181859e10595ee1de43dfaee9f16963d (patch) | |
| tree | 95483afe324b976e5d30f2953345c61f3777cf3e | |
| parent | 3b6e880fffb8e09b15bc6fc41d5b23f21bf5056d (diff) | |
| download | rust-31f6d45a181859e10595ee1de43dfaee9f16963d.tar.gz rust-31f6d45a181859e10595ee1de43dfaee9f16963d.zip | |
Do not attempt to autoderef `!`
This prevents error spam when attempting to look up overload traits.
| -rw-r--r-- | src/librustc/middle/typeck/check/mod.rs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/librustc/middle/typeck/check/mod.rs b/src/librustc/middle/typeck/check/mod.rs index c8728d375f6..8d67c04f687 100644 --- a/src/librustc/middle/typeck/check/mod.rs +++ b/src/librustc/middle/typeck/check/mod.rs @@ -2156,6 +2156,10 @@ pub fn autoderef<T>(fcx: &FnCtxt, sp: Span, base_ty: ty::t, for autoderefs in range(0, fcx.tcx().sess.recursion_limit.get()) { let resolved_t = structurally_resolved_type(fcx, sp, t); + if ty::type_is_bot(resolved_t) { + return (resolved_t, autoderefs, None); + } + match should_stop(resolved_t, autoderefs) { Some(x) => return (resolved_t, autoderefs, Some(x)), None => {} |
