Skip to content

Commit

Permalink
Auto merge of #68442 - Centril:rollup-ir2vmid, r=Centril
Browse files Browse the repository at this point in the history
Rollup of 3 pull requests

Successful merges:

 - #68421 (Update cargo, books)
 - #68422 (typeck: simplify the handling of `diverges`)
 - #68439 (Update Clippy)

Failed merges:

r? @ghost
  • Loading branch information
bors committed Jan 22, 2020
2 parents 5e8897b + 2a3627d commit 2f688ac
Show file tree
Hide file tree
Showing 10 changed files with 38 additions and 56 deletions.
14 changes: 10 additions & 4 deletions Cargo.lock
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,7 @@ dependencies = [
"glob",
"hex 0.4.0",
"home",
"humantime",
"humantime 2.0.0",
"ignore",
"im-rc",
"jobserver",
Expand Down Expand Up @@ -1013,7 +1013,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aafcde04e90a5226a6443b7aabdb016ba2f8307c847d524724bd9b346dd1a2d3"
dependencies = [
"atty",
"humantime",
"humantime 1.3.0",
"log",
"regex",
"termcolor",
Expand All @@ -1026,7 +1026,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
dependencies = [
"atty",
"humantime",
"humantime 1.3.0",
"log",
"regex",
"termcolor",
Expand Down Expand Up @@ -1454,6 +1454,12 @@ dependencies = [
"quick-error",
]

[[package]]
name = "humantime"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9b6c53306532d3c8e8087b44e6580e10db51a023cf9b433cea2ac38066b92da"

[[package]]
name = "hyper"
version = "0.12.31"
Expand Down Expand Up @@ -2647,7 +2653,7 @@ dependencies = [
"clap",
"derive_more",
"env_logger 0.6.2",
"humantime",
"humantime 1.3.0",
"lazy_static 1.3.0",
"log",
"rls-span",
Expand Down
2 changes: 1 addition & 1 deletion src/doc/book
Submodule book updated 37 files
+1 −1 .travis.yml
+0 −142 2018-edition/Cargo.lock
+0 −36 2018-edition/Cargo.toml
+0 −201 2018-edition/LICENSE-APACHE
+0 −25 2018-edition/LICENSE-MIT
+0 −13 2018-edition/convert-quotes.sh
+0 −24 2018-edition/nostarch.sh
+0 −34 2018-edition/style-guide.md
+0 −218 2018-edition/tools/docx-to-md.xsl
+0 −104 2018-edition/tools/src/bin/concat_chapters.rs
+0 −73 2018-edition/tools/src/bin/convert_quotes.rs
+0 −243 2018-edition/tools/src/bin/lfp.rs
+0 −406 2018-edition/tools/src/bin/link2print.rs
+0 −45 2018-edition/tools/src/bin/remove_links.rs
+0 −52 2018-edition/tools/src/bin/remove_markup.rs
+4 −4 Cargo.toml
+5 −1 README.md
+0 −32 nostarch/updates.md
+0 −142 second-edition/Cargo.lock
+0 −36 second-edition/Cargo.toml
+0 −201 second-edition/LICENSE-APACHE
+0 −25 second-edition/LICENSE-MIT
+0 −13 second-edition/convert-quotes.sh
+0 −20 second-edition/doc-to-md.sh
+0 −24 second-edition/nostarch.sh
+0 −34 second-edition/style-guide.md
+0 −218 second-edition/tools/docx-to-md.xsl
+0 −104 second-edition/tools/src/bin/concat_chapters.rs
+0 −73 second-edition/tools/src/bin/convert_quotes.rs
+0 −242 second-edition/tools/src/bin/lfp.rs
+0 −406 second-edition/tools/src/bin/link2print.rs
+0 −45 second-edition/tools/src/bin/remove_links.rs
+0 −52 second-edition/tools/src/bin/remove_markup.rs
+2 −2 src/appendix-01-keywords.md
+1 −5 src/ch04-02-references-and-borrowing.md
+10 −10 src/ch20-03-graceful-shutdown-and-cleanup.md
+1 −8 tools/src/bin/remove_markup.rs
2 changes: 1 addition & 1 deletion src/doc/embedded-book
Submodule embedded-book updated 1 files
+5 −0 .gitattributes
2 changes: 1 addition & 1 deletion src/doc/reference
2 changes: 1 addition & 1 deletion src/doc/rust-by-example
55 changes: 18 additions & 37 deletions src/librustc_typeck/check/_match.rs
Original file line number Diff line number Diff line change
Expand Up @@ -50,30 +50,13 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {

self.warn_arms_when_scrutinee_diverges(arms, match_src);

// Otherwise, we have to union together the types that the
// arms produce and so forth.
let scrut_diverges = self.diverges.get();
self.diverges.set(Diverges::Maybe);
// Otherwise, we have to union together the types that the arms produce and so forth.
let scrut_diverges = self.diverges.replace(Diverges::Maybe);

// rust-lang/rust#55810: Typecheck patterns first (via eager
// collection into `Vec`), so we get types for all bindings.
let all_arm_pats_diverge: Vec<_> = arms
.iter()
.map(|arm| {
let mut all_pats_diverge = Diverges::WarnedAlways;
self.diverges.set(Diverges::Maybe);
self.check_pat_top(&arm.pat, scrut_ty, Some(scrut.span), true);
all_pats_diverge &= self.diverges.get();

// As discussed with @eddyb, this is for disabling unreachable_code
// warnings on patterns (they're now subsumed by unreachable_patterns
// warnings).
match all_pats_diverge {
Diverges::Maybe => Diverges::Maybe,
Diverges::Always { .. } | Diverges::WarnedAlways => Diverges::WarnedAlways,
}
})
.collect();
// #55810: Type check patterns first so we get types for all bindings.
for arm in arms {
self.check_pat_top(&arm.pat, scrut_ty, Some(scrut.span), true);
}

// Now typecheck the blocks.
//
Expand Down Expand Up @@ -104,19 +87,19 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
CoerceMany::with_coercion_sites(coerce_first, arms)
};

let mut other_arms = vec![]; // used only for diagnostics
let mut other_arms = vec![]; // Used only for diagnostics.
let mut prior_arm_ty = None;
for (i, (arm, pats_diverge)) in arms.iter().zip(all_arm_pats_diverge).enumerate() {
for (i, arm) in arms.iter().enumerate() {
if let Some(g) = &arm.guard {
self.diverges.set(pats_diverge);
self.diverges.set(Diverges::Maybe);
match g {
hir::Guard::If(e) => {
self.check_expr_has_type_or_error(e, tcx.types.bool, |_| {})
}
};
}

self.diverges.set(pats_diverge);
self.diverges.set(Diverges::Maybe);
let arm_ty = if source_if
&& if_no_else
&& i != 0
Expand Down Expand Up @@ -200,16 +183,14 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
arms: &'tcx [hir::Arm<'tcx>],
source: hir::MatchSource,
) {
if self.diverges.get().is_always() {
use hir::MatchSource::*;
let msg = match source {
IfDesugar { .. } | IfLetDesugar { .. } => "block in `if` expression",
WhileDesugar { .. } | WhileLetDesugar { .. } => "block in `while` expression",
_ => "arm",
};
for arm in arms {
self.warn_if_unreachable(arm.body.hir_id, arm.body.span, msg);
}
use hir::MatchSource::*;
let msg = match source {
IfDesugar { .. } | IfLetDesugar { .. } => "block in `if` expression",
WhileDesugar { .. } | WhileLetDesugar { .. } => "block in `while` expression",
_ => "arm",
};
for arm in arms {
self.warn_if_unreachable(arm.body.hir_id, arm.body.span, msg);
}
}

Expand Down
6 changes: 2 additions & 4 deletions src/librustc_typeck/check/expr.rs
Original file line number Diff line number Diff line change
Expand Up @@ -165,10 +165,8 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
}

// Hide the outer diverging and has_errors flags.
let old_diverges = self.diverges.get();
let old_has_errors = self.has_errors.get();
self.diverges.set(Diverges::Maybe);
self.has_errors.set(false);
let old_diverges = self.diverges.replace(Diverges::Maybe);
let old_has_errors = self.has_errors.replace(false);

let ty = self.check_expr_kind(expr, expected, needs);

Expand Down
7 changes: 2 additions & 5 deletions src/librustc_typeck/check/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4429,10 +4429,8 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
self.warn_if_unreachable(stmt.hir_id, stmt.span, "statement");

// Hide the outer diverging and `has_errors` flags.
let old_diverges = self.diverges.get();
let old_has_errors = self.has_errors.get();
self.diverges.set(Diverges::Maybe);
self.has_errors.set(false);
let old_diverges = self.diverges.replace(Diverges::Maybe);
let old_has_errors = self.has_errors.replace(false);

match stmt.kind {
hir::StmtKind::Local(ref l) => {
Expand All @@ -4442,7 +4440,6 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
hir::StmtKind::Item(_) => {}
hir::StmtKind::Expr(ref expr) => {
// Check with expected type of `()`.

self.check_expr_has_type_or_error(&expr, self.tcx.mk_unit(), |err| {
self.suggest_semicolon_at_end(expr.span, err);
});
Expand Down
2 changes: 1 addition & 1 deletion src/tools/clippy

0 comments on commit 2f688ac

Please sign in to comment.