Skip to content

Commit b7820b2

Browse files
committed
Auto merge of #64754 - Centril:rollup-iwtb5xd, r=Centril
Rollup of 7 pull requests Successful merges: - #64324 (rustc: Fix mixing crates with different `share_generics`) - #64428 (Error explanation e0524) - #64481 (A more explanatory thread local storage panic message) - #64599 (Rustdoc render async function re-export) - #64743 (Update cargo) - #64746 (Remove blanket silencing of "type annotation needed" errors) - #64753 (Don't emit explain with json short messages.) Failed merges: r? @ghost
2 parents dcd473d + fa6dfc9 commit b7820b2

File tree

93 files changed

+1038
-660
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

93 files changed

+1038
-660
lines changed

Cargo.lock

+34-13
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,7 @@ version = "0.40.0"
269269
dependencies = [
270270
"atty",
271271
"bytesize",
272+
"cargo-platform",
272273
"cargo-test-macro",
273274
"cargo-test-support",
274275
"clap",
@@ -278,7 +279,7 @@ dependencies = [
278279
"crypto-hash",
279280
"curl",
280281
"curl-sys",
281-
"env_logger",
282+
"env_logger 0.7.0",
282283
"failure",
283284
"filetime",
284285
"flate2",
@@ -325,6 +326,13 @@ dependencies = [
325326
"winapi 0.3.6",
326327
]
327328

329+
[[package]]
330+
name = "cargo-platform"
331+
version = "0.1.0"
332+
dependencies = [
333+
"serde",
334+
]
335+
328336
[[package]]
329337
name = "cargo-test-macro"
330338
version = "0.1.0"
@@ -526,7 +534,7 @@ name = "compiletest"
526534
version = "0.0.0"
527535
dependencies = [
528536
"diff",
529-
"env_logger",
537+
"env_logger 0.6.2",
530538
"getopts",
531539
"lazy_static 1.3.0",
532540
"libc",
@@ -938,6 +946,19 @@ dependencies = [
938946
"termcolor",
939947
]
940948

949+
[[package]]
950+
name = "env_logger"
951+
version = "0.7.0"
952+
source = "registry+https://github.com/rust-lang/crates.io-index"
953+
checksum = "39ecdb7dd54465526f0a56d666e3b2dd5f3a218665a030b6e4ad9e70fa95d8fa"
954+
dependencies = [
955+
"atty",
956+
"humantime",
957+
"log",
958+
"regex",
959+
"termcolor",
960+
]
961+
941962
[[package]]
942963
name = "error-chain"
943964
version = "0.12.0"
@@ -1339,9 +1360,9 @@ checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
13391360

13401361
[[package]]
13411362
name = "humantime"
1342-
version = "1.2.0"
1363+
version = "1.3.0"
13431364
source = "registry+https://github.com/rust-lang/crates.io-index"
1344-
checksum = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114"
1365+
checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
13451366
dependencies = [
13461367
"quick-error",
13471368
]
@@ -1866,7 +1887,7 @@ dependencies = [
18661887
"chrono",
18671888
"clap",
18681889
"elasticlunr-rs",
1869-
"env_logger",
1890+
"env_logger 0.6.2",
18701891
"error-chain",
18711892
"handlebars",
18721893
"itertools 0.8.0",
@@ -1891,7 +1912,7 @@ version = "0.3.0"
18911912
source = "registry+https://github.com/rust-lang/crates.io-index"
18921913
checksum = "77d1f0ba4d1e6b86fa18e8853d026d7d76a97eb7eb5eb052ed80901e43b7fc10"
18931914
dependencies = [
1894-
"env_logger",
1915+
"env_logger 0.6.2",
18951916
"failure",
18961917
"log",
18971918
"mdbook",
@@ -2084,7 +2105,7 @@ dependencies = [
20842105
"colored",
20852106
"compiletest_rs",
20862107
"directories",
2087-
"env_logger",
2108+
"env_logger 0.6.2",
20882109
"getrandom",
20892110
"hex 0.3.2",
20902111
"log",
@@ -2493,7 +2514,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
24932514
checksum = "df8b3f4e0475def7d9c2e5de8e5a1306949849761e107b360d03e98eafaffd61"
24942515
dependencies = [
24952516
"chrono",
2496-
"env_logger",
2517+
"env_logger 0.6.2",
24972518
"log",
24982519
]
24992520

@@ -2620,7 +2641,7 @@ dependencies = [
26202641
"bitflags",
26212642
"clap",
26222643
"derive_more",
2623-
"env_logger",
2644+
"env_logger 0.6.2",
26242645
"humantime",
26252646
"lazy_static 1.3.0",
26262647
"log",
@@ -2914,7 +2935,7 @@ dependencies = [
29142935
"clippy_lints",
29152936
"crossbeam-channel",
29162937
"difference",
2917-
"env_logger",
2938+
"env_logger 0.6.2",
29182939
"failure",
29192940
"futures",
29202941
"heck",
@@ -2998,7 +3019,7 @@ name = "rls-rustc"
29983019
version = "0.6.0"
29993020
dependencies = [
30003021
"clippy_lints",
3001-
"env_logger",
3022+
"env_logger 0.6.2",
30023023
"failure",
30033024
"futures",
30043025
"log",
@@ -3399,7 +3420,7 @@ dependencies = [
33993420
name = "rustc_driver"
34003421
version = "0.0.0"
34013422
dependencies = [
3402-
"env_logger",
3423+
"env_logger 0.6.2",
34033424
"graphviz",
34043425
"lazy_static 1.3.0",
34053426
"log",
@@ -3781,7 +3802,7 @@ dependencies = [
37813802
"derive-new",
37823803
"diff",
37833804
"dirs",
3784-
"env_logger",
3805+
"env_logger 0.6.2",
37853806
"failure",
37863807
"getopts",
37873808
"ignore",

src/librustc/hir/lowering.rs

+1-3
Original file line numberDiff line numberDiff line change
@@ -2184,9 +2184,7 @@ impl<'a> LoweringContext<'a> {
21842184
match decl.output {
21852185
FunctionRetTy::Ty(ref ty) => match in_band_ty_params {
21862186
Some((def_id, _)) if impl_trait_return_allow => {
2187-
hir::Return(self.lower_ty(ty,
2188-
ImplTraitContext::OpaqueTy(Some(def_id))
2189-
))
2187+
hir::Return(self.lower_ty(ty, ImplTraitContext::OpaqueTy(Some(def_id))))
21902188
}
21912189
_ => {
21922190
hir::Return(self.lower_ty(ty, ImplTraitContext::disallowed()))

src/librustc/infer/opaque_types/mod.rs

+12-1
Original file line numberDiff line numberDiff line change
@@ -988,7 +988,9 @@ impl<'a, 'tcx> Instantiator<'a, 'tcx> {
988988
value.fold_with(&mut BottomUpFolder {
989989
tcx,
990990
ty_op: |ty| {
991-
if let ty::Opaque(def_id, substs) = ty.sty {
991+
if ty.references_error() {
992+
return tcx.types.err;
993+
} else if let ty::Opaque(def_id, substs) = ty.sty {
992994
// Check that this is `impl Trait` type is
993995
// declared by `parent_def_id` -- i.e., one whose
994996
// value we are inferring. At present, this is
@@ -1155,6 +1157,15 @@ impl<'a, 'tcx> Instantiator<'a, 'tcx> {
11551157
);
11561158
debug!("instantiate_opaque_types: ty_var={:?}", ty_var);
11571159

1160+
for predicate in &bounds.predicates {
1161+
if let ty::Predicate::Projection(projection) = &predicate {
1162+
if projection.skip_binder().ty.references_error() {
1163+
// No point on adding these obligations since there's a type error involved.
1164+
return ty_var;
1165+
}
1166+
}
1167+
}
1168+
11581169
self.obligations.reserve(bounds.predicates.len());
11591170
for predicate in bounds.predicates {
11601171
// Change the predicate to refer to the type variable,

0 commit comments

Comments
 (0)