diff --git a/src/librustc/middle/traits/select.rs b/src/librustc/middle/traits/select.rs index a38814580f54..51a793f1de89 100644 --- a/src/librustc/middle/traits/select.rs +++ b/src/librustc/middle/traits/select.rs @@ -725,7 +725,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> { try!(self.assemble_candidates_from_impls(obligation, &mut candidates.vec)); // No explicit impls were declared for this type, consider the fallback rules. - if candidates.vec.is_empty() { + if candidates.vec.is_empty() && !candidates.ambiguous { try!(self.assemble_builtin_bound_candidates(bound, stack, &mut candidates)); } }