diff options
| author | bors <bors@rust-lang.org> | 2018-11-07 03:21:02 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2018-11-07 03:21:02 +0000 |
| commit | 1433507eba7d1a114e4c6f27ae0e1a74f60f20de (patch) | |
| tree | bdefceb804ebe06423a47711fd1132f3b2219818 /src/librustdoc | |
| parent | da5f414c2c0bfe5198934493f04c676e2b23ff2e (diff) | |
| parent | 59e6ce4b19a8c2b9ec9a1fbf51ed232b040b177b (diff) | |
| download | rust-1.30.1.tar.gz rust-1.30.1.zip | |
Auto merge of #55738 - Mark-Simulacrum:stable-next, r=Mark-Simulacrum 1.30.1
1.30.1 stable release I believe this includes all of the relevant pieces from https://github.com/rust-lang/rust/issues/55594. Backports all proceeded smoothly. cc @rust-lang/release
Diffstat (limited to 'src/librustdoc')
| -rw-r--r-- | src/librustdoc/clean/blanket_impl.rs | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src/librustdoc/clean/blanket_impl.rs b/src/librustdoc/clean/blanket_impl.rs index e7e371cd567..3d591a702aa 100644 --- a/src/librustdoc/clean/blanket_impl.rs +++ b/src/librustdoc/clean/blanket_impl.rs @@ -103,11 +103,20 @@ impl<'a, 'tcx, 'rcx, 'cstore> BlanketImplFinder <'a, 'tcx, 'rcx, 'cstore> { // FIXME(eddyb) ignoring `obligations` might cause false positives. drop(obligations); - let may_apply = infcx.predicate_may_hold(&traits::Obligation::new( - cause.clone(), - param_env, - trait_ref.to_predicate(), - )); + debug!( + "invoking predicate_may_hold: {:?}", + trait_ref, + ); + let may_apply = match infcx.evaluate_obligation( + &traits::Obligation::new( + cause.clone(), + param_env, + trait_ref.to_predicate(), + ), + ) { + Ok(eval_result) => eval_result.may_apply(), + Err(traits::OverflowError) => true, // overflow doesn't mean yes *or* no + }; if !may_apply { return } |
