diff --git a/.mailmap b/.mailmap index 3f23aed31a833..1019710dc9793 100644 --- a/.mailmap +++ b/.mailmap @@ -286,7 +286,7 @@ Xuefeng Wu Xuefeng Wu Xuefeng Wu XuefengWu York Xiang Youngsoo Son -Yuki Okushi +Yuki Okushi Zach Pomerantz Zack Corr Zack Slayton diff --git a/compiler/rustc_ast_passes/src/feature_gate.rs b/compiler/rustc_ast_passes/src/feature_gate.rs index 2f73e44faf62b..3724438cc6ed2 100644 --- a/compiler/rustc_ast_passes/src/feature_gate.rs +++ b/compiler/rustc_ast_passes/src/feature_gate.rs @@ -313,7 +313,7 @@ impl<'a> Visitor<'a> for PostExpansionVisitor<'a> { include => external_doc cfg => doc_cfg masked => doc_masked - spotlight => doc_spotlight + notable_trait => doc_notable_trait keyword => doc_keyword ); } diff --git a/compiler/rustc_expand/src/mbe/macro_rules.rs b/compiler/rustc_expand/src/mbe/macro_rules.rs index 9ed478e6fccce..bc45c57596e15 100644 --- a/compiler/rustc_expand/src/mbe/macro_rules.rs +++ b/compiler/rustc_expand/src/mbe/macro_rules.rs @@ -18,7 +18,8 @@ use rustc_data_structures::fx::FxHashMap; use rustc_data_structures::sync::Lrc; use rustc_errors::{Applicability, DiagnosticBuilder}; use rustc_feature::Features; -use rustc_lint_defs::builtin::SEMICOLON_IN_EXPRESSIONS_FROM_MACROS; +use rustc_lint_defs::builtin::{OR_PATTERNS_BACK_COMPAT, SEMICOLON_IN_EXPRESSIONS_FROM_MACROS}; +use rustc_lint_defs::BuiltinLintDiagnostics; use rustc_parse::parser::Parser; use rustc_session::parse::ParseSess; use rustc_session::Session; @@ -951,8 +952,32 @@ fn check_matcher_core( // Now `last` holds the complete set of NT tokens that could // end the sequence before SUFFIX. Check that every one works with `suffix`. for token in &last.tokens { - if let TokenTree::MetaVarDecl(_, name, Some(kind)) = *token { + if let TokenTree::MetaVarDecl(span, name, Some(kind)) = *token { for next_token in &suffix_first.tokens { + // Check if the old pat is used and the next token is `|`. + if let NonterminalKind::Pat2015 { inferred: true } = kind { + if let TokenTree::Token(token) = next_token { + if let BinOp(token) = token.kind { + if let token::BinOpToken::Or = token { + // It is suggestion to use pat2015, for example: $x:pat -> $x:pat2015. + let suggestion = quoted_tt_to_string(&TokenTree::MetaVarDecl( + span, + name, + Some(NonterminalKind::Pat2015 { inferred: false }), + )); + sess.buffer_lint_with_diagnostic( + &OR_PATTERNS_BACK_COMPAT, + span, + ast::CRATE_NODE_ID, + &*format!("the meaning of the `pat` fragment specifier is changing in Rust 2021, which may affect this macro",), + BuiltinLintDiagnostics::OrPatternsBackCompat( + span, suggestion, + ), + ); + } + } + } + } match is_in_follow(next_token, kind) { IsInFollow::Yes => {} IsInFollow::No(possible) => { @@ -1080,7 +1105,7 @@ fn is_in_follow(tok: &mbe::TokenTree, kind: NonterminalKind) -> IsInFollow { _ => IsInFollow::No(TOKENS), } } - NonterminalKind::Pat2015 { .. } | NonterminalKind::Pat2021 { .. } => { + NonterminalKind::Pat2015 { .. } => { const TOKENS: &[&str] = &["`=>`", "`,`", "`=`", "`|`", "`if`", "`in`"]; match tok { TokenTree::Token(token) => match token.kind { @@ -1091,6 +1116,17 @@ fn is_in_follow(tok: &mbe::TokenTree, kind: NonterminalKind) -> IsInFollow { _ => IsInFollow::No(TOKENS), } } + NonterminalKind::Pat2021 { .. } => { + const TOKENS: &[&str] = &["`=>`", "`,`", "`=`", "`if`", "`in`"]; + match tok { + TokenTree::Token(token) => match token.kind { + FatArrow | Comma | Eq => IsInFollow::Yes, + Ident(name, false) if name == kw::If || name == kw::In => IsInFollow::Yes, + _ => IsInFollow::No(TOKENS), + }, + _ => IsInFollow::No(TOKENS), + } + } NonterminalKind::Path | NonterminalKind::Ty => { const TOKENS: &[&str] = &[ "`{`", "`[`", "`=>`", "`,`", "`>`", "`=`", "`:`", "`;`", "`|`", "`as`", diff --git a/compiler/rustc_feature/src/active.rs b/compiler/rustc_feature/src/active.rs index fb08a7b8cea0d..040260f5cf5a4 100644 --- a/compiler/rustc_feature/src/active.rs +++ b/compiler/rustc_feature/src/active.rs @@ -216,6 +216,10 @@ declare_features! ( /// Renamed from `optin_builtin_traits`. (active, auto_traits, "1.50.0", Some(13231), None), + /// Allows `#[doc(notable_trait)]`. + /// Renamed from `doc_spotlight`. + (active, doc_notable_trait, "1.52.0", Some(45040), None), + // no-tracking-issue-end // ------------------------------------------------------------------------- @@ -374,9 +378,6 @@ declare_features! ( /// Allows `#[doc(masked)]`. (active, doc_masked, "1.21.0", Some(44027), None), - /// Allows `#[doc(spotlight)]`. - (active, doc_spotlight, "1.22.0", Some(45040), None), - /// Allows `#[doc(include = "some-file")]`. (active, external_doc, "1.22.0", Some(44732), None), diff --git a/compiler/rustc_feature/src/removed.rs b/compiler/rustc_feature/src/removed.rs index aff66053c93bc..8ba67a00f8d82 100644 --- a/compiler/rustc_feature/src/removed.rs +++ b/compiler/rustc_feature/src/removed.rs @@ -80,6 +80,11 @@ declare_features! ( Some("subsumed by `#![feature(allocator_internals)]`")), /// Allows identifying crates that contain sanitizer runtimes. (removed, sanitizer_runtime, "1.17.0", None, None, None), + /// Allows `#[doc(spotlight)]`. + /// The attribute was renamed to `#[doc(notable_trait)]` + /// and the feature to `doc_notable_trait`. + (removed, doc_spotlight, "1.22.0", Some(45040), None, + Some("renamed to `doc_notable_trait`")), (removed, proc_macro_mod, "1.27.0", Some(54727), None, Some("subsumed by `#![feature(proc_macro_hygiene)]`")), (removed, proc_macro_expr, "1.27.0", Some(54727), None, diff --git a/compiler/rustc_lint/src/context.rs b/compiler/rustc_lint/src/context.rs index 14bd823ea2266..b3a19bfbf7532 100644 --- a/compiler/rustc_lint/src/context.rs +++ b/compiler/rustc_lint/src/context.rs @@ -709,6 +709,9 @@ pub trait LintContext: Sized { BuiltinLintDiagnostics::ProcMacroBackCompat(note) => { db.note(¬e); } + BuiltinLintDiagnostics::OrPatternsBackCompat(span,suggestion) => { + db.span_suggestion(span, "use pat2015 to preserve semantics", suggestion, Applicability::MachineApplicable); + } } // Rewrap `db`, and pass control to the user. decorate(LintDiagnosticBuilder::new(db)); diff --git a/compiler/rustc_lint_defs/src/builtin.rs b/compiler/rustc_lint_defs/src/builtin.rs index 4eaee7bf6e854..b602490905c29 100644 --- a/compiler/rustc_lint_defs/src/builtin.rs +++ b/compiler/rustc_lint_defs/src/builtin.rs @@ -2959,6 +2959,7 @@ declare_lint_pass! { DISJOINT_CAPTURE_DROP_REORDER, LEGACY_DERIVE_HELPERS, PROC_MACRO_BACK_COMPAT, + OR_PATTERNS_BACK_COMPAT, ] } @@ -3136,3 +3137,37 @@ declare_lint! { }) }; } + +declare_lint! { + /// The `or_patterns_back_compat` lint detects usage of old versions of or-patterns. + /// + /// ### Example + /// + /// ```rust,compile_fail + /// #![deny(or_patterns_back_compat)] + /// macro_rules! match_any { + /// ( $expr:expr , $( $( $pat:pat )|+ => $expr_arm:expr ),+ ) => { + /// match $expr { + /// $( + /// $( $pat => $expr_arm, )+ + /// )+ + /// } + /// }; + /// } + /// + /// fn main() { + /// let result: Result = Err(42); + /// let int: i64 = match_any!(result, Ok(i) | Err(i) => i.into()); + /// assert_eq!(int, 42); + /// } + /// ``` + /// + /// {{produces}} + /// + /// ### Explanation + /// + /// In Rust 2021, the pat matcher will match new patterns, which include the | character. + pub OR_PATTERNS_BACK_COMPAT, + Allow, + "detects usage of old versions of or-patterns", +} diff --git a/compiler/rustc_lint_defs/src/lib.rs b/compiler/rustc_lint_defs/src/lib.rs index 400b367095ec3..70475563a4abe 100644 --- a/compiler/rustc_lint_defs/src/lib.rs +++ b/compiler/rustc_lint_defs/src/lib.rs @@ -267,6 +267,7 @@ pub enum BuiltinLintDiagnostics { LegacyDeriveHelpers(Span), ExternDepSpec(String, ExternDepSpec), ProcMacroBackCompat(String), + OrPatternsBackCompat(Span, String), } /// Lints that are buffered up early on in the `Session` before the diff --git a/compiler/rustc_middle/src/mir/mod.rs b/compiler/rustc_middle/src/mir/mod.rs index abca2ecdb060b..92922bc5b1625 100644 --- a/compiler/rustc_middle/src/mir/mod.rs +++ b/compiler/rustc_middle/src/mir/mod.rs @@ -1482,7 +1482,7 @@ pub enum StatementKind<'tcx> { /// /// Note that this also is emitted for regular `let` bindings to ensure that locals that are /// never accessed still get some sanity checks for, e.g., `let x: ! = ..;` - FakeRead(FakeReadCause, Box>), + FakeRead(Box<(FakeReadCause, Place<'tcx>)>), /// Write the discriminant for a variant to the enum Place. SetDiscriminant { place: Box>, variant_index: VariantIdx }, @@ -1575,7 +1575,12 @@ pub enum FakeReadCause { /// `let x: !; match x {}` doesn't generate any read of x so we need to /// generate a read of x to check that it is initialized and safe. - ForMatchedPlace, + /// + /// If a closure pattern matches a Place starting with an Upvar, then we introduce a + /// FakeRead for that Place outside the closure, in such a case this option would be + /// Some(closure_def_id). + /// Otherwise, the value of the optional DefId will be None. + ForMatchedPlace(Option), /// A fake read of the RefWithinGuard version of a bind-by-value variable /// in a match guard to ensure that it's value hasn't change by the time @@ -1594,7 +1599,12 @@ pub enum FakeReadCause { /// but in some cases it can affect the borrow checker, as in #53695. /// Therefore, we insert a "fake read" here to ensure that we get /// appropriate errors. - ForLet, + /// + /// If a closure pattern matches a Place starting with an Upvar, then we introduce a + /// FakeRead for that Place outside the closure, in such a case this option would be + /// Some(closure_def_id). + /// Otherwise, the value of the optional DefId will be None. + ForLet(Option), /// If we have an index expression like /// @@ -1618,7 +1628,9 @@ impl Debug for Statement<'_> { use self::StatementKind::*; match self.kind { Assign(box (ref place, ref rv)) => write!(fmt, "{:?} = {:?}", place, rv), - FakeRead(ref cause, ref place) => write!(fmt, "FakeRead({:?}, {:?})", cause, place), + FakeRead(box (ref cause, ref place)) => { + write!(fmt, "FakeRead({:?}, {:?})", cause, place) + } Retag(ref kind, ref place) => write!( fmt, "Retag({}{:?})", diff --git a/compiler/rustc_middle/src/mir/visit.rs b/compiler/rustc_middle/src/mir/visit.rs index 32b4cd665d03f..fd504f8c5d5ac 100644 --- a/compiler/rustc_middle/src/mir/visit.rs +++ b/compiler/rustc_middle/src/mir/visit.rs @@ -380,7 +380,7 @@ macro_rules! make_mir_visitor { ) => { self.visit_assign(place, rvalue, location); } - StatementKind::FakeRead(_, place) => { + StatementKind::FakeRead(box (_, place)) => { self.visit_place( place, PlaceContext::NonMutatingUse(NonMutatingUseContext::Inspect), diff --git a/compiler/rustc_middle/src/traits/mod.rs b/compiler/rustc_middle/src/traits/mod.rs index 922d14bc2f574..00dec3b355f8f 100644 --- a/compiler/rustc_middle/src/traits/mod.rs +++ b/compiler/rustc_middle/src/traits/mod.rs @@ -323,6 +323,9 @@ pub enum ObligationCauseCode<'tcx> { /// #[feature(trivial_bounds)] is not enabled TrivialBound, + + /// If `X` is the concrete type of an opaque type `impl Y`, then `X` must implement `Y` + OpaqueType, } impl ObligationCauseCode<'_> { diff --git a/compiler/rustc_middle/src/ty/error.rs b/compiler/rustc_middle/src/ty/error.rs index 4767e5743c22e..d295b17d902aa 100644 --- a/compiler/rustc_middle/src/ty/error.rs +++ b/compiler/rustc_middle/src/ty/error.rs @@ -511,13 +511,18 @@ impl Trait for X { "consider constraining the associated type `{}` to `{}`", values.found, values.expected, ); - if !self.suggest_constraint( + if !(self.suggest_constraining_opaque_associated_type( + db, + &msg, + proj_ty, + values.expected, + ) || self.suggest_constraint( db, &msg, body_owner_def_id, proj_ty, values.expected, - ) { + )) { db.help(&msg); db.note( "for more information, visit \ @@ -701,20 +706,7 @@ impl Trait for X { } } - if let ty::Opaque(def_id, _) = *proj_ty.self_ty().kind() { - // When the expected `impl Trait` is not defined in the current item, it will come from - // a return type. This can occur when dealing with `TryStream` (#71035). - if self.constrain_associated_type_structured_suggestion( - db, - self.def_span(def_id), - &assoc, - proj_ty.trait_ref_and_own_substs(self).1, - values.found, - &msg, - ) { - return; - } - } + self.suggest_constraining_opaque_associated_type(db, &msg, proj_ty, values.found); if self.point_at_associated_type(db, body_owner_def_id, values.found) { return; @@ -752,6 +744,30 @@ fn foo(&self) -> Self::T { String::new() } } } + /// When the expected `impl Trait` is not defined in the current item, it will come from + /// a return type. This can occur when dealing with `TryStream` (#71035). + fn suggest_constraining_opaque_associated_type( + self, + db: &mut DiagnosticBuilder<'_>, + msg: &str, + proj_ty: &ty::ProjectionTy<'tcx>, + ty: Ty<'tcx>, + ) -> bool { + let assoc = self.associated_item(proj_ty.item_def_id); + if let ty::Opaque(def_id, _) = *proj_ty.self_ty().kind() { + self.constrain_associated_type_structured_suggestion( + db, + self.def_span(def_id), + &assoc, + proj_ty.trait_ref_and_own_substs(self).1, + ty, + &msg, + ) + } else { + false + } + } + fn point_at_methods_that_satisfy_associated_type( self, db: &mut DiagnosticBuilder<'_>, diff --git a/compiler/rustc_mir/src/borrow_check/diagnostics/conflict_errors.rs b/compiler/rustc_mir/src/borrow_check/diagnostics/conflict_errors.rs index eb942b195b252..d5deec820889a 100644 --- a/compiler/rustc_mir/src/borrow_check/diagnostics/conflict_errors.rs +++ b/compiler/rustc_mir/src/borrow_check/diagnostics/conflict_errors.rs @@ -1728,7 +1728,7 @@ impl<'cx, 'tcx> MirBorrowckCtxt<'cx, 'tcx> { impl<'tcx> Visitor<'tcx> for FakeReadCauseFinder<'tcx> { fn visit_statement(&mut self, statement: &Statement<'tcx>, _: Location) { match statement { - Statement { kind: StatementKind::FakeRead(cause, box place), .. } + Statement { kind: StatementKind::FakeRead(box (cause, place)), .. } if *place == self.place => { self.cause = Some(*cause); diff --git a/compiler/rustc_mir/src/borrow_check/diagnostics/explain_borrow.rs b/compiler/rustc_mir/src/borrow_check/diagnostics/explain_borrow.rs index 06e3f4b91f61f..2a388b8a72bb0 100644 --- a/compiler/rustc_mir/src/borrow_check/diagnostics/explain_borrow.rs +++ b/compiler/rustc_mir/src/borrow_check/diagnostics/explain_borrow.rs @@ -515,7 +515,7 @@ impl<'cx, 'tcx> MirBorrowckCtxt<'cx, 'tcx> { let block = &self.body.basic_blocks()[location.block]; let kind = if let Some(&Statement { - kind: StatementKind::FakeRead(FakeReadCause::ForLet, _), + kind: StatementKind::FakeRead(box (FakeReadCause::ForLet(_), _)), .. }) = block.statements.get(location.statement_index) { diff --git a/compiler/rustc_mir/src/borrow_check/diagnostics/mod.rs b/compiler/rustc_mir/src/borrow_check/diagnostics/mod.rs index 6ea0ba0a8e1ba..577d7d53814ee 100644 --- a/compiler/rustc_mir/src/borrow_check/diagnostics/mod.rs +++ b/compiler/rustc_mir/src/borrow_check/diagnostics/mod.rs @@ -7,8 +7,8 @@ use rustc_hir::def_id::DefId; use rustc_hir::lang_items::LangItemGroup; use rustc_hir::GeneratorKind; use rustc_middle::mir::{ - AggregateKind, Constant, Field, Local, LocalInfo, LocalKind, Location, Operand, Place, - PlaceRef, ProjectionElem, Rvalue, Statement, StatementKind, Terminator, TerminatorKind, + AggregateKind, Constant, FakeReadCause, Field, Local, LocalInfo, LocalKind, Location, Operand, + Place, PlaceRef, ProjectionElem, Rvalue, Statement, StatementKind, Terminator, TerminatorKind, }; use rustc_middle::ty::print::Print; use rustc_middle::ty::{self, DefIdTree, Instance, Ty, TyCtxt}; @@ -795,6 +795,24 @@ impl<'cx, 'tcx> MirBorrowckCtxt<'cx, 'tcx> { } } + // StatementKind::FakeRead only contains a def_id if they are introduced as a result + // of pattern matching within a closure. + if let StatementKind::FakeRead(box (cause, ref place)) = stmt.kind { + match cause { + FakeReadCause::ForMatchedPlace(Some(closure_def_id)) + | FakeReadCause::ForLet(Some(closure_def_id)) => { + debug!("move_spans: def_id={:?} place={:?}", closure_def_id, place); + let places = &[Operand::Move(*place)]; + if let Some((args_span, generator_kind, var_span)) = + self.closure_span(closure_def_id, moved_place, places) + { + return ClosureUse { generator_kind, args_span, var_span }; + } + } + _ => {} + } + } + let normal_ret = if moved_place.projection.iter().any(|p| matches!(p, ProjectionElem::Downcast(..))) { PatUse(stmt.source_info.span) diff --git a/compiler/rustc_mir/src/borrow_check/invalidation.rs b/compiler/rustc_mir/src/borrow_check/invalidation.rs index 1055e30a3a44c..9374741f83749 100644 --- a/compiler/rustc_mir/src/borrow_check/invalidation.rs +++ b/compiler/rustc_mir/src/borrow_check/invalidation.rs @@ -63,7 +63,7 @@ impl<'cx, 'tcx> Visitor<'tcx> for InvalidationGenerator<'cx, 'tcx> { self.mutate_place(location, *lhs, Shallow(None), JustWrite); } - StatementKind::FakeRead(_, _) => { + StatementKind::FakeRead(box (_, _)) => { // Only relevant for initialized/liveness/safety checks. } StatementKind::SetDiscriminant { place, variant_index: _ } => { diff --git a/compiler/rustc_mir/src/borrow_check/mod.rs b/compiler/rustc_mir/src/borrow_check/mod.rs index 583f73d5775d1..71db6abde4351 100644 --- a/compiler/rustc_mir/src/borrow_check/mod.rs +++ b/compiler/rustc_mir/src/borrow_check/mod.rs @@ -574,7 +574,7 @@ impl<'cx, 'tcx> dataflow::ResultsVisitor<'cx, 'tcx> for MirBorrowckCtxt<'cx, 'tc self.mutate_place(location, (*lhs, span), Shallow(None), JustWrite, flow_state); } - StatementKind::FakeRead(_, box ref place) => { + StatementKind::FakeRead(box (_, ref place)) => { // Read for match doesn't access any memory and is used to // assert that a place is safe and live. So we don't have to // do any checks here. diff --git a/compiler/rustc_mir/src/borrow_check/type_check/input_output.rs b/compiler/rustc_mir/src/borrow_check/type_check/input_output.rs index 77d9136622458..1bb447d105781 100644 --- a/compiler/rustc_mir/src/borrow_check/type_check/input_output.rs +++ b/compiler/rustc_mir/src/borrow_check/type_check/input_output.rs @@ -70,6 +70,12 @@ impl<'a, 'tcx> TypeChecker<'a, 'tcx> { // Equate expected input tys with those in the MIR. for (argument_index, &normalized_input_ty) in normalized_input_tys.iter().enumerate() { + if argument_index + 1 >= body.local_decls.len() { + self.tcx() + .sess + .delay_span_bug(body.span, "found more normalized_input_ty than local_decls"); + break; + } // In MIR, argument N is stored in local N+1. let local = Local::new(argument_index + 1); diff --git a/compiler/rustc_mir/src/dataflow/move_paths/builder.rs b/compiler/rustc_mir/src/dataflow/move_paths/builder.rs index 52b6e9f3753be..538d8921869c3 100644 --- a/compiler/rustc_mir/src/dataflow/move_paths/builder.rs +++ b/compiler/rustc_mir/src/dataflow/move_paths/builder.rs @@ -293,8 +293,8 @@ impl<'b, 'a, 'tcx> Gatherer<'b, 'a, 'tcx> { } self.gather_rvalue(rval); } - StatementKind::FakeRead(_, place) => { - self.create_move_path(**place); + StatementKind::FakeRead(box (_, place)) => { + self.create_move_path(*place); } StatementKind::LlvmInlineAsm(ref asm) => { for (output, kind) in iter::zip(&*asm.outputs, &asm.asm.outputs) { diff --git a/compiler/rustc_mir/src/transform/coverage/spans.rs b/compiler/rustc_mir/src/transform/coverage/spans.rs index e7097ce861902..324d826b375c1 100644 --- a/compiler/rustc_mir/src/transform/coverage/spans.rs +++ b/compiler/rustc_mir/src/transform/coverage/spans.rs @@ -683,10 +683,10 @@ pub(super) fn filtered_statement_span( // and `_1` is the `Place` for `somenum`. // // If and when the Issue is resolved, remove this special case match pattern: - StatementKind::FakeRead(cause, _) if cause == FakeReadCause::ForGuardBinding => None, + StatementKind::FakeRead(box (cause, _)) if cause == FakeReadCause::ForGuardBinding => None, // Retain spans from all other statements - StatementKind::FakeRead(_, _) // Not including `ForGuardBinding` + StatementKind::FakeRead(box (_, _)) // Not including `ForGuardBinding` | StatementKind::CopyNonOverlapping(..) | StatementKind::Assign(_) | StatementKind::SetDiscriminant { .. } diff --git a/compiler/rustc_mir_build/src/build/cfg.rs b/compiler/rustc_mir_build/src/build/cfg.rs index e562e52f8410f..fd4a783d12a00 100644 --- a/compiler/rustc_mir_build/src/build/cfg.rs +++ b/compiler/rustc_mir_build/src/build/cfg.rs @@ -80,7 +80,7 @@ impl<'tcx> CFG<'tcx> { cause: FakeReadCause, place: Place<'tcx>, ) { - let kind = StatementKind::FakeRead(cause, box place); + let kind = StatementKind::FakeRead(box (cause, place)); let stmt = Statement { source_info, kind }; self.push(block, stmt); } diff --git a/compiler/rustc_mir_build/src/build/expr/as_rvalue.rs b/compiler/rustc_mir_build/src/build/expr/as_rvalue.rs index 7f24a41b00bbe..822fbd91c947e 100644 --- a/compiler/rustc_mir_build/src/build/expr/as_rvalue.rs +++ b/compiler/rustc_mir_build/src/build/expr/as_rvalue.rs @@ -179,24 +179,20 @@ impl<'a, 'tcx> Builder<'a, 'tcx> { // match x { _ => () } // fake read of `x` // }; // ``` - // FIXME(RFC2229): Remove feature gate once diagnostics are improved - if this.tcx.features().capture_disjoint_fields { - for (thir_place, cause, hir_id) in fake_reads.into_iter() { - let place_builder = - unpack!(block = this.as_place_builder(block, thir_place)); - - if let Ok(place_builder_resolved) = - place_builder.try_upvars_resolved(this.tcx, this.typeck_results) - { - let mir_place = - place_builder_resolved.into_place(this.tcx, this.typeck_results); - this.cfg.push_fake_read( - block, - this.source_info(this.tcx.hir().span(*hir_id)), - *cause, - mir_place, - ); - } + for (thir_place, cause, hir_id) in fake_reads.into_iter() { + let place_builder = unpack!(block = this.as_place_builder(block, thir_place)); + + if let Ok(place_builder_resolved) = + place_builder.try_upvars_resolved(this.tcx, this.typeck_results) + { + let mir_place = + place_builder_resolved.into_place(this.tcx, this.typeck_results); + this.cfg.push_fake_read( + block, + this.source_info(this.tcx.hir().span(*hir_id)), + *cause, + mir_place, + ); } } diff --git a/compiler/rustc_mir_build/src/build/matches/mod.rs b/compiler/rustc_mir_build/src/build/matches/mod.rs index 73fd3f0feb591..0e422dc3c6378 100644 --- a/compiler/rustc_mir_build/src/build/matches/mod.rs +++ b/compiler/rustc_mir_build/src/build/matches/mod.rs @@ -139,7 +139,7 @@ impl<'a, 'tcx> Builder<'a, 'tcx> { // uninhabited value. If we get never patterns, those will check that // the place is initialized, and so this read would only be used to // check safety. - let cause_matched_place = FakeReadCause::ForMatchedPlace; + let cause_matched_place = FakeReadCause::ForMatchedPlace(None); let source_info = self.source_info(scrutinee_span); if let Ok(scrutinee_builder) = @@ -400,7 +400,7 @@ impl<'a, 'tcx> Builder<'a, 'tcx> { // Inject a fake read, see comments on `FakeReadCause::ForLet`. let source_info = self.source_info(irrefutable_pat.span); - self.cfg.push_fake_read(block, source_info, FakeReadCause::ForLet, place); + self.cfg.push_fake_read(block, source_info, FakeReadCause::ForLet(None), place); self.schedule_drop_for_binding(var, irrefutable_pat.span, OutsideGuard); block.unit() @@ -435,7 +435,7 @@ impl<'a, 'tcx> Builder<'a, 'tcx> { // Inject a fake read, see comments on `FakeReadCause::ForLet`. let pattern_source_info = self.source_info(irrefutable_pat.span); - let cause_let = FakeReadCause::ForLet; + let cause_let = FakeReadCause::ForLet(None); self.cfg.push_fake_read(block, pattern_source_info, cause_let, place); let ty_source_info = self.source_info(user_ty_span); diff --git a/compiler/rustc_passes/src/check_attr.rs b/compiler/rustc_passes/src/check_attr.rs index 85add83f88bf7..d1a3971f5695b 100644 --- a/compiler/rustc_passes/src/check_attr.rs +++ b/compiler/rustc_passes/src/check_attr.rs @@ -9,7 +9,7 @@ use rustc_middle::ty::query::Providers; use rustc_middle::ty::TyCtxt; use rustc_ast::{Attribute, Lit, LitKind, NestedMetaItem}; -use rustc_errors::{pluralize, struct_span_err}; +use rustc_errors::{pluralize, struct_span_err, Applicability}; use rustc_hir as hir; use rustc_hir::def_id::LocalDefId; use rustc_hir::intravisit::{self, NestedVisitorMap, Visitor}; @@ -648,10 +648,10 @@ impl CheckAttrVisitor<'tcx> { | sym::masked | sym::no_default_passes | sym::no_inline + | sym::notable_trait | sym::passes | sym::plugins | sym::primitive - | sym::spotlight | sym::test => {} _ => { @@ -660,11 +660,23 @@ impl CheckAttrVisitor<'tcx> { hir_id, i_meta.span, |lint| { - let msg = format!( + let mut diag = lint.build(&format!( "unknown `doc` attribute `{}`", rustc_ast_pretty::pprust::path_to_string(&i_meta.path), - ); - lint.build(&msg).emit(); + )); + if i_meta.has_name(sym::spotlight) { + diag.note( + "`doc(spotlight)` was renamed to `doc(notable_trait)`", + ); + diag.span_suggestion_short( + i_meta.span, + "use `notable_trait` instead", + String::from("notable_trait"), + Applicability::MachineApplicable, + ); + diag.note("`doc(spotlight)` is now a no-op"); + } + diag.emit(); }, ); is_valid = false; diff --git a/compiler/rustc_span/src/symbol.rs b/compiler/rustc_span/src/symbol.rs index 116519855d776..c5f929ab183a5 100644 --- a/compiler/rustc_span/src/symbol.rs +++ b/compiler/rustc_span/src/symbol.rs @@ -477,6 +477,7 @@ symbols! { doc_cfg, doc_keyword, doc_masked, + doc_notable_trait, doc_spotlight, doctest, document_private_items, @@ -801,6 +802,7 @@ symbols! { noreturn, nostack, not, + notable_trait, note, object_safe_for_dispatch, of, diff --git a/compiler/rustc_trait_selection/src/opaque_types.rs b/compiler/rustc_trait_selection/src/opaque_types.rs index b6c3768d8876a..fb4a8ce687c4d 100644 --- a/compiler/rustc_trait_selection/src/opaque_types.rs +++ b/compiler/rustc_trait_selection/src/opaque_types.rs @@ -1171,7 +1171,7 @@ impl<'a, 'tcx> Instantiator<'a, 'tcx> { // This also instantiates nested instances of `impl Trait`. let predicate = self.instantiate_opaque_types_in_map(predicate); - let cause = traits::ObligationCause::new(span, self.body_id, traits::MiscObligation); + let cause = traits::ObligationCause::new(span, self.body_id, traits::OpaqueType); // Require that the predicate holds for the concrete type. debug!("instantiate_opaque_types: predicate={:?}", predicate); diff --git a/compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs b/compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs index 93a37bd40902d..15a3d3ddd8d85 100644 --- a/compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs +++ b/compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs @@ -1226,10 +1226,11 @@ impl<'a, 'tcx> InferCtxtPrivExt<'tcx> for InferCtxt<'a, 'tcx> { ); let is_normalized_ty_expected = !matches!( - obligation.cause.code, + obligation.cause.code.peel_derives(), ObligationCauseCode::ItemObligation(_) | ObligationCauseCode::BindingObligation(_, _) | ObligationCauseCode::ObjectCastObligation(_) + | ObligationCauseCode::OpaqueType ); if let Err(error) = self.at(&obligation.cause, obligation.param_env).eq_exp( diff --git a/compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs b/compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs index 326b85e1013d6..0549db06806e2 100644 --- a/compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs +++ b/compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs @@ -1840,6 +1840,7 @@ impl<'a, 'tcx> InferCtxtExt<'tcx> for InferCtxt<'a, 'tcx> { | ObligationCauseCode::MethodReceiver | ObligationCauseCode::ReturnNoExpression | ObligationCauseCode::UnifyReceiver(..) + | ObligationCauseCode::OpaqueType | ObligationCauseCode::MiscObligation => {} ObligationCauseCode::SliceOrArrayElem => { err.note("slice and array elements must have `Sized` type"); diff --git a/compiler/rustc_typeck/src/expr_use_visitor.rs b/compiler/rustc_typeck/src/expr_use_visitor.rs index ab286bacd8189..02510cb6a44cf 100644 --- a/compiler/rustc_typeck/src/expr_use_visitor.rs +++ b/compiler/rustc_typeck/src/expr_use_visitor.rs @@ -280,9 +280,14 @@ impl<'a, 'tcx> ExprUseVisitor<'a, 'tcx> { if needs_to_be_read { self.borrow_expr(&discr, ty::ImmBorrow); } else { + let closure_def_id = match discr_place.place.base { + PlaceBase::Upvar(upvar_id) => Some(upvar_id.closure_expr_id.to_def_id()), + _ => None, + }; + self.delegate.fake_read( discr_place.place.clone(), - FakeReadCause::ForMatchedPlace, + FakeReadCause::ForMatchedPlace(closure_def_id), discr_place.hir_id, ); @@ -578,9 +583,14 @@ impl<'a, 'tcx> ExprUseVisitor<'a, 'tcx> { } fn walk_arm(&mut self, discr_place: &PlaceWithHirId<'tcx>, arm: &hir::Arm<'_>) { + let closure_def_id = match discr_place.place.base { + PlaceBase::Upvar(upvar_id) => Some(upvar_id.closure_expr_id.to_def_id()), + _ => None, + }; + self.delegate.fake_read( discr_place.place.clone(), - FakeReadCause::ForMatchedPlace, + FakeReadCause::ForMatchedPlace(closure_def_id), discr_place.hir_id, ); self.walk_pat(discr_place, &arm.pat); @@ -595,9 +605,14 @@ impl<'a, 'tcx> ExprUseVisitor<'a, 'tcx> { /// Walks a pat that occurs in isolation (i.e., top-level of fn argument or /// let binding, and *not* a match arm or nested pat.) fn walk_irrefutable_pat(&mut self, discr_place: &PlaceWithHirId<'tcx>, pat: &hir::Pat<'_>) { + let closure_def_id = match discr_place.place.base { + PlaceBase::Upvar(upvar_id) => Some(upvar_id.closure_expr_id.to_def_id()), + _ => None, + }; + self.delegate.fake_read( discr_place.place.clone(), - FakeReadCause::ForLet, + FakeReadCause::ForLet(closure_def_id), discr_place.hir_id, ); self.walk_pat(discr_place, pat); diff --git a/library/core/src/future/future.rs b/library/core/src/future/future.rs index e9a99ddb6b1bd..cc4cf54a2f764 100644 --- a/library/core/src/future/future.rs +++ b/library/core/src/future/future.rs @@ -24,7 +24,8 @@ use crate::task::{Context, Poll}; /// `.await` the value. /// /// [`Waker`]: crate::task::Waker -#[doc(spotlight)] +#[cfg_attr(bootstrap, doc(spotlight))] +#[cfg_attr(not(bootstrap), doc(notable_trait))] #[must_use = "futures do nothing unless you `.await` or poll them"] #[stable(feature = "futures_api", since = "1.36.0")] #[lang = "future_trait"] diff --git a/library/core/src/iter/traits/iterator.rs b/library/core/src/iter/traits/iterator.rs index e75a36477188c..d5d0c287992c5 100644 --- a/library/core/src/iter/traits/iterator.rs +++ b/library/core/src/iter/traits/iterator.rs @@ -92,7 +92,8 @@ fn _assert_is_object_safe(_: &dyn Iterator) {} label = "`{Self}` is not an iterator", message = "`{Self}` is not an iterator" )] -#[doc(spotlight)] +#[cfg_attr(bootstrap, doc(spotlight))] +#[cfg_attr(not(bootstrap), doc(notable_trait))] #[rustc_diagnostic_item = "Iterator"] #[must_use = "iterators are lazy and do nothing unless consumed"] pub trait Iterator { diff --git a/library/core/src/lib.rs b/library/core/src/lib.rs index f47ad7e6bc214..158b1e152ad49 100644 --- a/library/core/src/lib.rs +++ b/library/core/src/lib.rs @@ -109,7 +109,8 @@ #![feature(custom_inner_attributes)] #![feature(decl_macro)] #![feature(doc_cfg)] -#![feature(doc_spotlight)] +#![cfg_attr(bootstrap, feature(doc_spotlight))] +#![cfg_attr(not(bootstrap), feature(doc_notable_trait))] #![feature(duration_consts_2)] #![feature(duration_saturating_ops)] #![feature(extended_key_value_attributes)] diff --git a/library/std/src/io/mod.rs b/library/std/src/io/mod.rs index 9953bcd556dd9..9625984195bd2 100644 --- a/library/std/src/io/mod.rs +++ b/library/std/src/io/mod.rs @@ -505,7 +505,8 @@ pub(crate) fn default_read_exact(this: &mut R, mut buf: &mut [ /// [`std::io`]: self /// [`File`]: crate::fs::File #[stable(feature = "rust1", since = "1.0.0")] -#[doc(spotlight)] +#[cfg_attr(bootstrap, doc(spotlight))] +#[cfg_attr(not(bootstrap), doc(notable_trait))] pub trait Read { /// Pull some bytes from this source into the specified buffer, returning /// how many bytes were read. @@ -1296,7 +1297,8 @@ impl Initializer { /// /// [`write_all`]: Write::write_all #[stable(feature = "rust1", since = "1.0.0")] -#[doc(spotlight)] +#[cfg_attr(bootstrap, doc(spotlight))] +#[cfg_attr(not(bootstrap), doc(notable_trait))] pub trait Write { /// Write a buffer into this writer, returning how many bytes were written. /// diff --git a/library/std/src/lib.rs b/library/std/src/lib.rs index 3719eeb1840be..d5ba2d36346b5 100644 --- a/library/std/src/lib.rs +++ b/library/std/src/lib.rs @@ -257,7 +257,8 @@ #![feature(doc_cfg)] #![feature(doc_keyword)] #![feature(doc_masked)] -#![feature(doc_spotlight)] +#![cfg_attr(bootstrap, feature(doc_spotlight))] +#![cfg_attr(not(bootstrap), feature(doc_notable_trait))] #![feature(dropck_eyepatch)] #![feature(duration_constants)] #![feature(duration_zero)] diff --git a/library/std/src/sync/once.rs b/library/std/src/sync/once.rs index 2e5f843fc43cb..a24a5cb2ae39f 100644 --- a/library/std/src/sync/once.rs +++ b/library/std/src/sync/once.rs @@ -471,7 +471,7 @@ fn wait(state_and_queue: &AtomicUsize, mut current_state: usize) { // If the managing thread happens to signal and unpark us before we // can park ourselves, the result could be this thread never gets // unparked. Luckily `park` comes with the guarantee that if it got - // an `unpark` just before on an unparked thread is does not park. + // an `unpark` just before on an unparked thread it does not park. thread::park(); } break; diff --git a/src/doc/rustdoc/src/unstable-features.md b/src/doc/rustdoc/src/unstable-features.md index 7d1845dc9578e..28b81a40265d3 100644 --- a/src/doc/rustdoc/src/unstable-features.md +++ b/src/doc/rustdoc/src/unstable-features.md @@ -88,26 +88,28 @@ Book][unstable-doc-cfg] and [its tracking issue][issue-doc-cfg]. [unstable-doc-cfg]: ../unstable-book/language-features/doc-cfg.html [issue-doc-cfg]: https://github.com/rust-lang/rust/issues/43781 -### Adding your trait to the "Important Traits" dialog - -Rustdoc keeps a list of a few traits that are believed to be "fundamental" to a given type when -implemented on it. These traits are intended to be the primary interface for their types, and are -often the only thing available to be documented on their types. For this reason, Rustdoc will track -when a given type implements one of these traits and call special attention to it when a function -returns one of these types. This is the "Important Traits" dialog, visible as a circle-i button next -to the function, which, when clicked, shows the dialog. - -In the standard library, the traits that qualify for inclusion are `Iterator`, `io::Read`, and -`io::Write`. However, rather than being implemented as a hard-coded list, these traits have a -special marker attribute on them: `#[doc(spotlight)]`. This means that you could apply this -attribute to your own trait to include it in the "Important Traits" dialog in documentation. - -The `#[doc(spotlight)]` attribute currently requires the `#![feature(doc_spotlight)]` feature gate. -For more information, see [its chapter in the Unstable Book][unstable-spotlight] and [its tracking -issue][issue-spotlight]. - -[unstable-spotlight]: ../unstable-book/language-features/doc-spotlight.html -[issue-spotlight]: https://github.com/rust-lang/rust/issues/45040 +### Adding your trait to the "Notable traits" dialog + +Rustdoc keeps a list of a few traits that are believed to be "fundamental" to +types that implement them. These traits are intended to be the primary interface +for their implementers, and are often most of the API available to be documented +on their types. For this reason, Rustdoc will track when a given type implements +one of these traits and call special attention to it when a function returns one +of these types. This is the "Notable traits" dialog, accessible as a circled `i` +button next to the function, which, when clicked, shows the dialog. + +In the standard library, some of the traits that are part of this list are +`Iterator`, `Future`, `io::Read`, and `io::Write`. However, rather than being +implemented as a hard-coded list, these traits have a special marker attribute +on them: `#[doc(notable_trait)]`. This means that you can apply this attribute +to your own trait to include it in the "Notable traits" dialog in documentation. + +The `#[doc(notable_trait)]` attribute currently requires the `#![feature(doc_notable_trait)]` +feature gate. For more information, see [its chapter in the Unstable Book][unstable-notable_trait] +and [its tracking issue][issue-notable_trait]. + +[unstable-notable_trait]: ../unstable-book/language-features/doc-notable-trait.html +[issue-notable_trait]: https://github.com/rust-lang/rust/issues/45040 ### Exclude certain dependencies from documentation diff --git a/src/doc/unstable-book/src/language-features/doc-notable-trait.md b/src/doc/unstable-book/src/language-features/doc-notable-trait.md new file mode 100644 index 0000000000000..dc402ed4253ac --- /dev/null +++ b/src/doc/unstable-book/src/language-features/doc-notable-trait.md @@ -0,0 +1,33 @@ +# `doc_notable_trait` + +The tracking issue for this feature is: [#45040] + +The `doc_notable_trait` feature allows the use of the `#[doc(notable_trait)]` +attribute, which will display the trait in a "Notable traits" dialog for +functions returning types that implement the trait. For example, this attribute +is applied to the `Iterator`, `Future`, `io::Read`, and `io::Write` traits in +the standard library. + +You can do this on your own traits like so: + +``` +#![feature(doc_notable_trait)] + +#[doc(notable_trait)] +pub trait MyTrait {} + +pub struct MyStruct; +impl MyTrait for MyStruct {} + +/// The docs for this function will have a button that displays a dialog about +/// `MyStruct` implementing `MyTrait`. +pub fn my_fn() -> MyStruct { MyStruct } +``` + +This feature was originally implemented in PR [#45039]. + +See also its documentation in [the rustdoc book][rustdoc-book-notable_trait]. + +[#45040]: https://github.com/rust-lang/rust/issues/45040 +[#45039]: https://github.com/rust-lang/rust/pull/45039 +[rustdoc-book-notable_trait]: ../../rustdoc/unstable-features.html#adding-your-trait-to-the-notable-traits-dialog diff --git a/src/doc/unstable-book/src/language-features/doc-spotlight.md b/src/doc/unstable-book/src/language-features/doc-spotlight.md deleted file mode 100644 index 75eff16331898..0000000000000 --- a/src/doc/unstable-book/src/language-features/doc-spotlight.md +++ /dev/null @@ -1,30 +0,0 @@ -# `doc_spotlight` - -The tracking issue for this feature is: [#45040] - -The `doc_spotlight` feature allows the use of the `spotlight` parameter to the `#[doc]` attribute, -to "spotlight" a specific trait on the return values of functions. Adding a `#[doc(spotlight)]` -attribute to a trait definition will make rustdoc print extra information for functions which return -a type that implements that trait. For example, this attribute is applied to the `Iterator`, -`io::Read`, `io::Write`, and `Future` traits in the standard library. - -You can do this on your own traits, like this: - -``` -#![feature(doc_spotlight)] - -#[doc(spotlight)] -pub trait MyTrait {} - -pub struct MyStruct; -impl MyTrait for MyStruct {} - -/// The docs for this function will have an extra line about `MyStruct` implementing `MyTrait`, -/// without having to write that yourself! -pub fn my_fn() -> MyStruct { MyStruct } -``` - -This feature was originally implemented in PR [#45039]. - -[#45040]: https://github.com/rust-lang/rust/issues/45040 -[#45039]: https://github.com/rust-lang/rust/pull/45039 diff --git a/src/librustdoc/clean/inline.rs b/src/librustdoc/clean/inline.rs index a4c1ee7a0f065..1e9a7d1b4b9ad 100644 --- a/src/librustdoc/clean/inline.rs +++ b/src/librustdoc/clean/inline.rs @@ -624,7 +624,7 @@ crate fn record_extern_trait(cx: &mut DocContext<'_>, did: DefId) { let trait_ = clean::TraitWithExtraInfo { trait_, - is_spotlight: clean::utils::has_doc_flag(cx.tcx.get_attrs(did), sym::spotlight), + is_spotlight: clean::utils::has_doc_flag(cx.tcx.get_attrs(did), sym::notable_trait), }; cx.external_traits.borrow_mut().insert(did, trait_); cx.active_extern_traits.remove(&did); diff --git a/src/librustdoc/formats/cache.rs b/src/librustdoc/formats/cache.rs index f9a663b38ebdc..01bceb1d910ca 100644 --- a/src/librustdoc/formats/cache.rs +++ b/src/librustdoc/formats/cache.rs @@ -227,7 +227,7 @@ impl<'a, 'tcx> DocFolder for CacheBuilder<'a, 'tcx> { if let clean::TraitItem(ref t) = *item.kind { self.cache.traits.entry(item.def_id).or_insert_with(|| clean::TraitWithExtraInfo { trait_: t.clone(), - is_spotlight: item.attrs.has_doc_flag(sym::spotlight), + is_spotlight: item.attrs.has_doc_flag(sym::notable_trait), }); } diff --git a/src/test/mir-opt/address_of.address_of_reborrow.SimplifyCfg-initial.after.mir b/src/test/mir-opt/address_of.address_of_reborrow.SimplifyCfg-initial.after.mir index a95681126205f..9fa478f8a826c 100644 --- a/src/test/mir-opt/address_of.address_of_reborrow.SimplifyCfg-initial.after.mir +++ b/src/test/mir-opt/address_of.address_of_reborrow.SimplifyCfg-initial.after.mir @@ -130,12 +130,12 @@ fn address_of_reborrow() -> () { StorageLive(_2); // scope 0 at $DIR/address-of.rs:4:14: 4:21 _2 = [const 0_i32; 10]; // scope 0 at $DIR/address-of.rs:4:14: 4:21 _1 = &_2; // scope 0 at $DIR/address-of.rs:4:13: 4:21 - FakeRead(ForLet, _1); // scope 0 at $DIR/address-of.rs:4:9: 4:10 + FakeRead(ForLet(None), _1); // scope 0 at $DIR/address-of.rs:4:9: 4:10 StorageLive(_3); // scope 1 at $DIR/address-of.rs:5:9: 5:14 StorageLive(_4); // scope 1 at $DIR/address-of.rs:5:22: 5:29 _4 = [const 0_i32; 10]; // scope 1 at $DIR/address-of.rs:5:22: 5:29 _3 = &mut _4; // scope 1 at $DIR/address-of.rs:5:17: 5:29 - FakeRead(ForLet, _3); // scope 1 at $DIR/address-of.rs:5:9: 5:14 + FakeRead(ForLet(None), _3); // scope 1 at $DIR/address-of.rs:5:9: 5:14 StorageLive(_5); // scope 2 at $DIR/address-of.rs:7:5: 7:18 StorageLive(_6); // scope 2 at $DIR/address-of.rs:7:5: 7:18 _6 = &raw const (*_1); // scope 2 at $DIR/address-of.rs:7:5: 7:6 @@ -170,25 +170,25 @@ fn address_of_reborrow() -> () { StorageDead(_13); // scope 2 at $DIR/address-of.rs:11:20: 11:21 StorageLive(_15); // scope 2 at $DIR/address-of.rs:13:9: 13:10 _15 = &raw const (*_1); // scope 2 at $DIR/address-of.rs:13:23: 13:24 - FakeRead(ForLet, _15); // scope 2 at $DIR/address-of.rs:13:9: 13:10 + FakeRead(ForLet(None), _15); // scope 2 at $DIR/address-of.rs:13:9: 13:10 AscribeUserType(_15, o, UserTypeProjection { base: UserType(3), projs: [] }); // scope 2 at $DIR/address-of.rs:13:12: 13:20 StorageLive(_16); // scope 3 at $DIR/address-of.rs:14:9: 14:10 _16 = &raw const (*_1); // scope 3 at $DIR/address-of.rs:14:31: 14:32 - FakeRead(ForLet, _16); // scope 3 at $DIR/address-of.rs:14:9: 14:10 + FakeRead(ForLet(None), _16); // scope 3 at $DIR/address-of.rs:14:9: 14:10 AscribeUserType(_16, o, UserTypeProjection { base: UserType(5), projs: [] }); // scope 3 at $DIR/address-of.rs:14:12: 14:28 StorageLive(_17); // scope 4 at $DIR/address-of.rs:15:9: 15:10 StorageLive(_18); // scope 4 at $DIR/address-of.rs:15:30: 15:31 _18 = &raw const (*_1); // scope 4 at $DIR/address-of.rs:15:30: 15:31 _17 = move _18 as *const dyn std::marker::Send (Pointer(Unsize)); // scope 4 at $DIR/address-of.rs:15:30: 15:31 StorageDead(_18); // scope 4 at $DIR/address-of.rs:15:30: 15:31 - FakeRead(ForLet, _17); // scope 4 at $DIR/address-of.rs:15:9: 15:10 + FakeRead(ForLet(None), _17); // scope 4 at $DIR/address-of.rs:15:9: 15:10 AscribeUserType(_17, o, UserTypeProjection { base: UserType(7), projs: [] }); // scope 4 at $DIR/address-of.rs:15:12: 15:27 StorageLive(_19); // scope 5 at $DIR/address-of.rs:16:9: 16:10 StorageLive(_20); // scope 5 at $DIR/address-of.rs:16:27: 16:28 _20 = &raw const (*_1); // scope 5 at $DIR/address-of.rs:16:27: 16:28 _19 = move _20 as *const [i32] (Pointer(Unsize)); // scope 5 at $DIR/address-of.rs:16:27: 16:28 StorageDead(_20); // scope 5 at $DIR/address-of.rs:16:27: 16:28 - FakeRead(ForLet, _19); // scope 5 at $DIR/address-of.rs:16:9: 16:10 + FakeRead(ForLet(None), _19); // scope 5 at $DIR/address-of.rs:16:9: 16:10 AscribeUserType(_19, o, UserTypeProjection { base: UserType(9), projs: [] }); // scope 5 at $DIR/address-of.rs:16:12: 16:24 StorageLive(_21); // scope 6 at $DIR/address-of.rs:18:5: 18:18 StorageLive(_22); // scope 6 at $DIR/address-of.rs:18:5: 18:18 @@ -218,25 +218,25 @@ fn address_of_reborrow() -> () { StorageDead(_27); // scope 6 at $DIR/address-of.rs:21:22: 21:23 StorageLive(_29); // scope 6 at $DIR/address-of.rs:23:9: 23:10 _29 = &raw const (*_3); // scope 6 at $DIR/address-of.rs:23:23: 23:24 - FakeRead(ForLet, _29); // scope 6 at $DIR/address-of.rs:23:9: 23:10 + FakeRead(ForLet(None), _29); // scope 6 at $DIR/address-of.rs:23:9: 23:10 AscribeUserType(_29, o, UserTypeProjection { base: UserType(13), projs: [] }); // scope 6 at $DIR/address-of.rs:23:12: 23:20 StorageLive(_30); // scope 7 at $DIR/address-of.rs:24:9: 24:10 _30 = &raw const (*_3); // scope 7 at $DIR/address-of.rs:24:31: 24:32 - FakeRead(ForLet, _30); // scope 7 at $DIR/address-of.rs:24:9: 24:10 + FakeRead(ForLet(None), _30); // scope 7 at $DIR/address-of.rs:24:9: 24:10 AscribeUserType(_30, o, UserTypeProjection { base: UserType(15), projs: [] }); // scope 7 at $DIR/address-of.rs:24:12: 24:28 StorageLive(_31); // scope 8 at $DIR/address-of.rs:25:9: 25:10 StorageLive(_32); // scope 8 at $DIR/address-of.rs:25:30: 25:31 _32 = &raw const (*_3); // scope 8 at $DIR/address-of.rs:25:30: 25:31 _31 = move _32 as *const dyn std::marker::Send (Pointer(Unsize)); // scope 8 at $DIR/address-of.rs:25:30: 25:31 StorageDead(_32); // scope 8 at $DIR/address-of.rs:25:30: 25:31 - FakeRead(ForLet, _31); // scope 8 at $DIR/address-of.rs:25:9: 25:10 + FakeRead(ForLet(None), _31); // scope 8 at $DIR/address-of.rs:25:9: 25:10 AscribeUserType(_31, o, UserTypeProjection { base: UserType(17), projs: [] }); // scope 8 at $DIR/address-of.rs:25:12: 25:27 StorageLive(_33); // scope 9 at $DIR/address-of.rs:26:9: 26:10 StorageLive(_34); // scope 9 at $DIR/address-of.rs:26:27: 26:28 _34 = &raw const (*_3); // scope 9 at $DIR/address-of.rs:26:27: 26:28 _33 = move _34 as *const [i32] (Pointer(Unsize)); // scope 9 at $DIR/address-of.rs:26:27: 26:28 StorageDead(_34); // scope 9 at $DIR/address-of.rs:26:27: 26:28 - FakeRead(ForLet, _33); // scope 9 at $DIR/address-of.rs:26:9: 26:10 + FakeRead(ForLet(None), _33); // scope 9 at $DIR/address-of.rs:26:9: 26:10 AscribeUserType(_33, o, UserTypeProjection { base: UserType(19), projs: [] }); // scope 9 at $DIR/address-of.rs:26:12: 26:24 StorageLive(_35); // scope 10 at $DIR/address-of.rs:28:5: 28:16 StorageLive(_36); // scope 10 at $DIR/address-of.rs:28:5: 28:16 @@ -266,25 +266,25 @@ fn address_of_reborrow() -> () { StorageDead(_41); // scope 10 at $DIR/address-of.rs:31:20: 31:21 StorageLive(_43); // scope 10 at $DIR/address-of.rs:33:9: 33:10 _43 = &raw mut (*_3); // scope 10 at $DIR/address-of.rs:33:21: 33:22 - FakeRead(ForLet, _43); // scope 10 at $DIR/address-of.rs:33:9: 33:10 + FakeRead(ForLet(None), _43); // scope 10 at $DIR/address-of.rs:33:9: 33:10 AscribeUserType(_43, o, UserTypeProjection { base: UserType(23), projs: [] }); // scope 10 at $DIR/address-of.rs:33:12: 33:18 StorageLive(_44); // scope 11 at $DIR/address-of.rs:34:9: 34:10 _44 = &raw mut (*_3); // scope 11 at $DIR/address-of.rs:34:29: 34:30 - FakeRead(ForLet, _44); // scope 11 at $DIR/address-of.rs:34:9: 34:10 + FakeRead(ForLet(None), _44); // scope 11 at $DIR/address-of.rs:34:9: 34:10 AscribeUserType(_44, o, UserTypeProjection { base: UserType(25), projs: [] }); // scope 11 at $DIR/address-of.rs:34:12: 34:26 StorageLive(_45); // scope 12 at $DIR/address-of.rs:35:9: 35:10 StorageLive(_46); // scope 12 at $DIR/address-of.rs:35:28: 35:29 _46 = &raw mut (*_3); // scope 12 at $DIR/address-of.rs:35:28: 35:29 _45 = move _46 as *mut dyn std::marker::Send (Pointer(Unsize)); // scope 12 at $DIR/address-of.rs:35:28: 35:29 StorageDead(_46); // scope 12 at $DIR/address-of.rs:35:28: 35:29 - FakeRead(ForLet, _45); // scope 12 at $DIR/address-of.rs:35:9: 35:10 + FakeRead(ForLet(None), _45); // scope 12 at $DIR/address-of.rs:35:9: 35:10 AscribeUserType(_45, o, UserTypeProjection { base: UserType(27), projs: [] }); // scope 12 at $DIR/address-of.rs:35:12: 35:25 StorageLive(_47); // scope 13 at $DIR/address-of.rs:36:9: 36:10 StorageLive(_48); // scope 13 at $DIR/address-of.rs:36:25: 36:26 _48 = &raw mut (*_3); // scope 13 at $DIR/address-of.rs:36:25: 36:26 _47 = move _48 as *mut [i32] (Pointer(Unsize)); // scope 13 at $DIR/address-of.rs:36:25: 36:26 StorageDead(_48); // scope 13 at $DIR/address-of.rs:36:25: 36:26 - FakeRead(ForLet, _47); // scope 13 at $DIR/address-of.rs:36:9: 36:10 + FakeRead(ForLet(None), _47); // scope 13 at $DIR/address-of.rs:36:9: 36:10 AscribeUserType(_47, o, UserTypeProjection { base: UserType(29), projs: [] }); // scope 13 at $DIR/address-of.rs:36:12: 36:22 _0 = const (); // scope 0 at $DIR/address-of.rs:3:26: 37:2 StorageDead(_47); // scope 13 at $DIR/address-of.rs:37:1: 37:2 diff --git a/src/test/mir-opt/address_of.borrow_and_cast.SimplifyCfg-initial.after.mir b/src/test/mir-opt/address_of.borrow_and_cast.SimplifyCfg-initial.after.mir index e058b0aaa8f0e..195f3e2e65c64 100644 --- a/src/test/mir-opt/address_of.borrow_and_cast.SimplifyCfg-initial.after.mir +++ b/src/test/mir-opt/address_of.borrow_and_cast.SimplifyCfg-initial.after.mir @@ -24,19 +24,19 @@ fn borrow_and_cast(_1: i32) -> () { StorageLive(_3); // scope 0 at $DIR/address-of.rs:42:13: 42:15 _3 = &_1; // scope 0 at $DIR/address-of.rs:42:13: 42:15 _2 = &raw const (*_3); // scope 0 at $DIR/address-of.rs:42:13: 42:15 - FakeRead(ForLet, _2); // scope 0 at $DIR/address-of.rs:42:9: 42:10 + FakeRead(ForLet(None), _2); // scope 0 at $DIR/address-of.rs:42:9: 42:10 StorageDead(_3); // scope 0 at $DIR/address-of.rs:42:29: 42:30 StorageLive(_4); // scope 1 at $DIR/address-of.rs:43:9: 43:10 StorageLive(_5); // scope 1 at $DIR/address-of.rs:43:13: 43:19 _5 = &mut _1; // scope 1 at $DIR/address-of.rs:43:13: 43:19 _4 = &raw const (*_5); // scope 1 at $DIR/address-of.rs:43:13: 43:19 - FakeRead(ForLet, _4); // scope 1 at $DIR/address-of.rs:43:9: 43:10 + FakeRead(ForLet(None), _4); // scope 1 at $DIR/address-of.rs:43:9: 43:10 StorageDead(_5); // scope 1 at $DIR/address-of.rs:43:33: 43:34 StorageLive(_6); // scope 2 at $DIR/address-of.rs:44:9: 44:10 StorageLive(_7); // scope 2 at $DIR/address-of.rs:44:13: 44:19 _7 = &mut _1; // scope 2 at $DIR/address-of.rs:44:13: 44:19 _6 = &raw mut (*_7); // scope 2 at $DIR/address-of.rs:44:13: 44:19 - FakeRead(ForLet, _6); // scope 2 at $DIR/address-of.rs:44:9: 44:10 + FakeRead(ForLet(None), _6); // scope 2 at $DIR/address-of.rs:44:9: 44:10 StorageDead(_7); // scope 2 at $DIR/address-of.rs:44:31: 44:32 _0 = const (); // scope 0 at $DIR/address-of.rs:41:32: 45:2 StorageDead(_6); // scope 2 at $DIR/address-of.rs:45:1: 45:2 diff --git a/src/test/mir-opt/basic_assignment.main.SimplifyCfg-initial.after.mir b/src/test/mir-opt/basic_assignment.main.SimplifyCfg-initial.after.mir index 7e0ca3dea4b71..e751b825c0505 100644 --- a/src/test/mir-opt/basic_assignment.main.SimplifyCfg-initial.after.mir +++ b/src/test/mir-opt/basic_assignment.main.SimplifyCfg-initial.after.mir @@ -28,7 +28,7 @@ fn main() -> () { bb0: { StorageLive(_1); // scope 0 at $DIR/basic_assignment.rs:11:9: 11:17 _1 = const false; // scope 0 at $DIR/basic_assignment.rs:11:20: 11:25 - FakeRead(ForLet, _1); // scope 0 at $DIR/basic_assignment.rs:11:9: 11:17 + FakeRead(ForLet(None), _1); // scope 0 at $DIR/basic_assignment.rs:11:9: 11:17 StorageLive(_2); // scope 1 at $DIR/basic_assignment.rs:12:9: 12:17 StorageLive(_3); // scope 2 at $DIR/basic_assignment.rs:16:16: 16:24 _3 = _1; // scope 2 at $DIR/basic_assignment.rs:16:16: 16:24 @@ -36,7 +36,7 @@ fn main() -> () { StorageDead(_3); // scope 2 at $DIR/basic_assignment.rs:16:23: 16:24 StorageLive(_4); // scope 2 at $DIR/basic_assignment.rs:18:9: 18:15 _4 = Option::>::None; // scope 2 at $DIR/basic_assignment.rs:18:36: 18:40 - FakeRead(ForLet, _4); // scope 2 at $DIR/basic_assignment.rs:18:9: 18:15 + FakeRead(ForLet(None), _4); // scope 2 at $DIR/basic_assignment.rs:18:9: 18:15 AscribeUserType(_4, o, UserTypeProjection { base: UserType(1), projs: [] }); // scope 2 at $DIR/basic_assignment.rs:18:17: 18:33 StorageLive(_5); // scope 3 at $DIR/basic_assignment.rs:19:9: 19:15 StorageLive(_6); // scope 4 at $DIR/basic_assignment.rs:23:14: 23:20 diff --git a/src/test/mir-opt/exponential_or.match_tuple.SimplifyCfg-initial.after.mir b/src/test/mir-opt/exponential_or.match_tuple.SimplifyCfg-initial.after.mir index aa4f996c4b46a..93507879a6f83 100644 --- a/src/test/mir-opt/exponential_or.match_tuple.SimplifyCfg-initial.after.mir +++ b/src/test/mir-opt/exponential_or.match_tuple.SimplifyCfg-initial.after.mir @@ -18,7 +18,7 @@ fn match_tuple(_1: (u32, bool, Option, u32)) -> u32 { } bb0: { - FakeRead(ForMatchedPlace, _1); // scope 0 at $DIR/exponential-or.rs:5:11: 5:12 + FakeRead(ForMatchedPlace(None), _1); // scope 0 at $DIR/exponential-or.rs:5:11: 5:12 switchInt((_1.0: u32)) -> [1_u32: bb2, 4_u32: bb2, otherwise: bb1]; // scope 0 at $DIR/exponential-or.rs:6:15: 6:16 } diff --git a/src/test/mir-opt/issue_38669.main.SimplifyCfg-initial.after.mir b/src/test/mir-opt/issue_38669.main.SimplifyCfg-initial.after.mir index e9e5a101a64a5..8355b2d195e14 100644 --- a/src/test/mir-opt/issue_38669.main.SimplifyCfg-initial.after.mir +++ b/src/test/mir-opt/issue_38669.main.SimplifyCfg-initial.after.mir @@ -14,7 +14,7 @@ fn main() -> () { bb0: { StorageLive(_1); // scope 0 at $DIR/issue-38669.rs:5:9: 5:25 _1 = const false; // scope 0 at $DIR/issue-38669.rs:5:28: 5:33 - FakeRead(ForLet, _1); // scope 0 at $DIR/issue-38669.rs:5:9: 5:25 + FakeRead(ForLet(None), _1); // scope 0 at $DIR/issue-38669.rs:5:9: 5:25 goto -> bb1; // scope 1 at $DIR/issue-38669.rs:6:5: 11:6 } diff --git a/src/test/mir-opt/issue_49232.main.mir_map.0.mir b/src/test/mir-opt/issue_49232.main.mir_map.0.mir index 79f5495c78828..06fbbda3d9e22 100644 --- a/src/test/mir-opt/issue_49232.main.mir_map.0.mir +++ b/src/test/mir-opt/issue_49232.main.mir_map.0.mir @@ -24,7 +24,7 @@ fn main() -> () { StorageLive(_2); // scope 0 at $DIR/issue-49232.rs:7:13: 7:19 StorageLive(_3); // scope 0 at $DIR/issue-49232.rs:8:19: 8:23 _3 = const true; // scope 0 at $DIR/issue-49232.rs:8:19: 8:23 - FakeRead(ForMatchedPlace, _3); // scope 0 at $DIR/issue-49232.rs:8:19: 8:23 + FakeRead(ForMatchedPlace(None), _3); // scope 0 at $DIR/issue-49232.rs:8:19: 8:23 switchInt(_3) -> [false: bb3, otherwise: bb4]; // scope 0 at $DIR/issue-49232.rs:9:17: 9:22 } @@ -51,7 +51,7 @@ fn main() -> () { } bb8: { - FakeRead(ForLet, _2); // scope 0 at $DIR/issue-49232.rs:7:13: 7:19 + FakeRead(ForLet(None), _2); // scope 0 at $DIR/issue-49232.rs:7:13: 7:19 StorageDead(_3); // scope 0 at $DIR/issue-49232.rs:12:10: 12:11 StorageLive(_5); // scope 1 at $DIR/issue-49232.rs:13:9: 13:22 StorageLive(_6); // scope 1 at $DIR/issue-49232.rs:13:14: 13:21 diff --git a/src/test/mir-opt/issue_72181.main.mir_map.0.32bit.mir b/src/test/mir-opt/issue_72181.main.mir_map.0.32bit.mir index cf66a501e35ee..2e6783b7f3c9d 100644 --- a/src/test/mir-opt/issue_72181.main.mir_map.0.32bit.mir +++ b/src/test/mir-opt/issue_72181.main.mir_map.0.32bit.mir @@ -38,7 +38,7 @@ fn main() -> () { _2 = [move _3, move _4]; // scope 1 at $DIR/issue-72181.rs:26:13: 26:43 StorageDead(_4); // scope 1 at $DIR/issue-72181.rs:26:42: 26:43 StorageDead(_3); // scope 1 at $DIR/issue-72181.rs:26:42: 26:43 - FakeRead(ForLet, _2); // scope 1 at $DIR/issue-72181.rs:26:9: 26:10 + FakeRead(ForLet(None), _2); // scope 1 at $DIR/issue-72181.rs:26:9: 26:10 StorageLive(_5); // scope 2 at $DIR/issue-72181.rs:27:13: 27:30 StorageLive(_6); // scope 4 at $DIR/issue-72181.rs:27:24: 27:25 _6 = const 0_usize; // scope 4 at $DIR/issue-72181.rs:27:24: 27:25 diff --git a/src/test/mir-opt/issue_72181.main.mir_map.0.64bit.mir b/src/test/mir-opt/issue_72181.main.mir_map.0.64bit.mir index cf66a501e35ee..2e6783b7f3c9d 100644 --- a/src/test/mir-opt/issue_72181.main.mir_map.0.64bit.mir +++ b/src/test/mir-opt/issue_72181.main.mir_map.0.64bit.mir @@ -38,7 +38,7 @@ fn main() -> () { _2 = [move _3, move _4]; // scope 1 at $DIR/issue-72181.rs:26:13: 26:43 StorageDead(_4); // scope 1 at $DIR/issue-72181.rs:26:42: 26:43 StorageDead(_3); // scope 1 at $DIR/issue-72181.rs:26:42: 26:43 - FakeRead(ForLet, _2); // scope 1 at $DIR/issue-72181.rs:26:9: 26:10 + FakeRead(ForLet(None), _2); // scope 1 at $DIR/issue-72181.rs:26:9: 26:10 StorageLive(_5); // scope 2 at $DIR/issue-72181.rs:27:13: 27:30 StorageLive(_6); // scope 4 at $DIR/issue-72181.rs:27:24: 27:25 _6 = const 0_usize; // scope 4 at $DIR/issue-72181.rs:27:24: 27:25 diff --git a/src/test/mir-opt/issue_72181_1.f.mir_map.0.mir b/src/test/mir-opt/issue_72181_1.f.mir_map.0.mir index 7571d7bb94f92..7def08ece220b 100644 --- a/src/test/mir-opt/issue_72181_1.f.mir_map.0.mir +++ b/src/test/mir-opt/issue_72181_1.f.mir_map.0.mir @@ -9,7 +9,7 @@ fn f(_1: Void) -> ! { bb0: { StorageLive(_2); // scope 0 at $DIR/issue-72181-1.rs:10:20: 12:2 StorageLive(_3); // scope 0 at $DIR/issue-72181-1.rs:11:5: 11:15 - FakeRead(ForMatchedPlace, _1); // scope 0 at $DIR/issue-72181-1.rs:11:11: 11:12 + FakeRead(ForMatchedPlace(None), _1); // scope 0 at $DIR/issue-72181-1.rs:11:11: 11:12 unreachable; // scope 0 at $DIR/issue-72181-1.rs:11:11: 11:12 } diff --git a/src/test/mir-opt/issue_72181_1.main.mir_map.0.mir b/src/test/mir-opt/issue_72181_1.main.mir_map.0.mir index 1fd91c2056bf8..3c26b20c35e2d 100644 --- a/src/test/mir-opt/issue_72181_1.main.mir_map.0.mir +++ b/src/test/mir-opt/issue_72181_1.main.mir_map.0.mir @@ -29,7 +29,7 @@ fn main() -> () { bb1: { StorageDead(_3); // scope 2 at $DIR/issue-72181-1.rs:17:43: 17:44 - FakeRead(ForLet, _2); // scope 0 at $DIR/issue-72181-1.rs:16:9: 16:10 + FakeRead(ForLet(None), _2); // scope 0 at $DIR/issue-72181-1.rs:16:9: 16:10 AscribeUserType(_2, o, UserTypeProjection { base: UserType(1), projs: [] }); // scope 0 at $DIR/issue-72181-1.rs:16:12: 16:16 StorageLive(_4); // scope 1 at $DIR/issue-72181-1.rs:20:5: 20:9 StorageLive(_5); // scope 1 at $DIR/issue-72181-1.rs:20:7: 20:8 diff --git a/src/test/mir-opt/loop_test.main.SimplifyCfg-promote-consts.after.mir b/src/test/mir-opt/loop_test.main.SimplifyCfg-promote-consts.after.mir index f109937dbf937..99c7ac8d5b708 100644 --- a/src/test/mir-opt/loop_test.main.SimplifyCfg-promote-consts.after.mir +++ b/src/test/mir-opt/loop_test.main.SimplifyCfg-promote-consts.after.mir @@ -41,7 +41,7 @@ fn main() -> () { bb4: { StorageLive(_6); // scope 0 at $DIR/loop_test.rs:14:13: 14:14 _6 = const 1_i32; // scope 0 at $DIR/loop_test.rs:14:17: 14:18 - FakeRead(ForLet, _6); // scope 0 at $DIR/loop_test.rs:14:13: 14:14 + FakeRead(ForLet(None), _6); // scope 0 at $DIR/loop_test.rs:14:13: 14:14 StorageDead(_6); // scope 0 at $DIR/loop_test.rs:16:5: 16:6 goto -> bb3; // scope 0 at $DIR/loop_test.rs:1:1: 1:1 } diff --git a/src/test/mir-opt/match_arm_scopes.complicated_match.SimplifyCfg-initial.after-ElaborateDrops.after.diff b/src/test/mir-opt/match_arm_scopes.complicated_match.SimplifyCfg-initial.after-ElaborateDrops.after.diff index 95beab2ec9af7..3395cbfbdfb3a 100644 --- a/src/test/mir-opt/match_arm_scopes.complicated_match.SimplifyCfg-initial.after-ElaborateDrops.after.diff +++ b/src/test/mir-opt/match_arm_scopes.complicated_match.SimplifyCfg-initial.after-ElaborateDrops.after.diff @@ -31,7 +31,7 @@ } bb0: { -- FakeRead(ForMatchedPlace, _2); // scope 0 at $DIR/match-arm-scopes.rs:14:11: 14:16 +- FakeRead(ForMatchedPlace(None), _2); // scope 0 at $DIR/match-arm-scopes.rs:14:11: 14:16 - switchInt((_2.0: bool)) -> [false: bb1, otherwise: bb2]; // scope 0 at $DIR/match-arm-scopes.rs:15:10: 15:15 + switchInt((_2.0: bool)) -> [false: bb5, otherwise: bb1]; // scope 0 at $DIR/match-arm-scopes.rs:15:10: 15:15 } diff --git a/src/test/mir-opt/match_false_edges.full_tested_match.PromoteTemps.after.mir b/src/test/mir-opt/match_false_edges.full_tested_match.PromoteTemps.after.mir index 242138754c5d7..f57be9a1ef77d 100644 --- a/src/test/mir-opt/match_false_edges.full_tested_match.PromoteTemps.after.mir +++ b/src/test/mir-opt/match_false_edges.full_tested_match.PromoteTemps.after.mir @@ -27,7 +27,7 @@ fn full_tested_match() -> () { StorageLive(_1); // scope 0 at $DIR/match_false_edges.rs:15:13: 19:6 StorageLive(_2); // scope 0 at $DIR/match_false_edges.rs:15:19: 15:27 _2 = Option::::Some(const 42_i32); // scope 0 at $DIR/match_false_edges.rs:15:19: 15:27 - FakeRead(ForMatchedPlace, _2); // scope 0 at $DIR/match_false_edges.rs:15:19: 15:27 + FakeRead(ForMatchedPlace(None), _2); // scope 0 at $DIR/match_false_edges.rs:15:19: 15:27 _3 = discriminant(_2); // scope 0 at $DIR/match_false_edges.rs:16:9: 16:16 switchInt(move _3) -> [0_isize: bb1, 1_isize: bb2, otherwise: bb4]; // scope 0 at $DIR/match_false_edges.rs:16:9: 16:16 } diff --git a/src/test/mir-opt/match_false_edges.full_tested_match2.PromoteTemps.before.mir b/src/test/mir-opt/match_false_edges.full_tested_match2.PromoteTemps.before.mir index c7b1cce061bc6..a4ebf8a02466a 100644 --- a/src/test/mir-opt/match_false_edges.full_tested_match2.PromoteTemps.before.mir +++ b/src/test/mir-opt/match_false_edges.full_tested_match2.PromoteTemps.before.mir @@ -26,7 +26,7 @@ fn full_tested_match2() -> () { StorageLive(_1); // scope 0 at $DIR/match_false_edges.rs:26:13: 30:6 StorageLive(_2); // scope 0 at $DIR/match_false_edges.rs:26:19: 26:27 _2 = Option::::Some(const 42_i32); // scope 0 at $DIR/match_false_edges.rs:26:19: 26:27 - FakeRead(ForMatchedPlace, _2); // scope 0 at $DIR/match_false_edges.rs:26:19: 26:27 + FakeRead(ForMatchedPlace(None), _2); // scope 0 at $DIR/match_false_edges.rs:26:19: 26:27 _3 = discriminant(_2); // scope 0 at $DIR/match_false_edges.rs:27:9: 27:16 switchInt(move _3) -> [0_isize: bb1, 1_isize: bb2, otherwise: bb4]; // scope 0 at $DIR/match_false_edges.rs:27:9: 27:16 } diff --git a/src/test/mir-opt/match_false_edges.main.PromoteTemps.before.mir b/src/test/mir-opt/match_false_edges.main.PromoteTemps.before.mir index 9b8ce2c1ed047..5de52b324f43f 100644 --- a/src/test/mir-opt/match_false_edges.main.PromoteTemps.before.mir +++ b/src/test/mir-opt/match_false_edges.main.PromoteTemps.before.mir @@ -37,7 +37,7 @@ fn main() -> () { StorageLive(_1); // scope 0 at $DIR/match_false_edges.rs:35:13: 40:6 StorageLive(_2); // scope 0 at $DIR/match_false_edges.rs:35:19: 35:26 _2 = Option::::Some(const 1_i32); // scope 0 at $DIR/match_false_edges.rs:35:19: 35:26 - FakeRead(ForMatchedPlace, _2); // scope 0 at $DIR/match_false_edges.rs:35:19: 35:26 + FakeRead(ForMatchedPlace(None), _2); // scope 0 at $DIR/match_false_edges.rs:35:19: 35:26 _4 = discriminant(_2); // scope 0 at $DIR/match_false_edges.rs:36:9: 36:17 switchInt(move _4) -> [1_isize: bb2, otherwise: bb1]; // scope 0 at $DIR/match_false_edges.rs:36:9: 36:17 } diff --git a/src/test/mir-opt/match_test.main.SimplifyCfg-initial.after.mir b/src/test/mir-opt/match_test.main.SimplifyCfg-initial.after.mir index e3bc4f80f27fd..5bb910947ca25 100644 --- a/src/test/mir-opt/match_test.main.SimplifyCfg-initial.after.mir +++ b/src/test/mir-opt/match_test.main.SimplifyCfg-initial.after.mir @@ -21,12 +21,12 @@ fn main() -> () { bb0: { StorageLive(_1); // scope 0 at $DIR/match_test.rs:7:9: 7:10 _1 = const 3_i32; // scope 0 at $DIR/match_test.rs:7:13: 7:14 - FakeRead(ForLet, _1); // scope 0 at $DIR/match_test.rs:7:9: 7:10 + FakeRead(ForLet(None), _1); // scope 0 at $DIR/match_test.rs:7:9: 7:10 StorageLive(_2); // scope 1 at $DIR/match_test.rs:8:9: 8:10 _2 = const true; // scope 1 at $DIR/match_test.rs:8:13: 8:17 - FakeRead(ForLet, _2); // scope 1 at $DIR/match_test.rs:8:9: 8:10 + FakeRead(ForLet(None), _2); // scope 1 at $DIR/match_test.rs:8:9: 8:10 StorageLive(_3); // scope 2 at $DIR/match_test.rs:12:5: 17:6 - FakeRead(ForMatchedPlace, _1); // scope 2 at $DIR/match_test.rs:12:11: 12:12 + FakeRead(ForMatchedPlace(None), _1); // scope 2 at $DIR/match_test.rs:12:11: 12:12 _6 = Le(const 0_i32, _1); // scope 2 at $DIR/match_test.rs:13:9: 13:14 switchInt(move _6) -> [false: bb4, otherwise: bb1]; // scope 2 at $DIR/match_test.rs:13:9: 13:14 } diff --git a/src/test/mir-opt/nll/region_subtyping_basic.main.nll.0.32bit.mir b/src/test/mir-opt/nll/region_subtyping_basic.main.nll.0.32bit.mir index 8c939d5fc3da5..39e6cee11b4c9 100644 --- a/src/test/mir-opt/nll/region_subtyping_basic.main.nll.0.32bit.mir +++ b/src/test/mir-opt/nll/region_subtyping_basic.main.nll.0.32bit.mir @@ -46,7 +46,7 @@ fn main() -> () { bb0: { StorageLive(_1); // bb0[0]: scope 0 at $DIR/region-subtyping-basic.rs:17:9: 17:14 _1 = [const Const(Value(Scalar(0x00000001)): usize), const Const(Value(Scalar(0x00000002)): usize), const Const(Value(Scalar(0x00000003)): usize)]; // bb0[1]: scope 0 at $DIR/region-subtyping-basic.rs:17:17: 17:26 - FakeRead(ForLet, _1); // bb0[2]: scope 0 at $DIR/region-subtyping-basic.rs:17:9: 17:14 + FakeRead(ForLet(None), _1); // bb0[2]: scope 0 at $DIR/region-subtyping-basic.rs:17:9: 17:14 StorageLive(_2); // bb0[3]: scope 1 at $DIR/region-subtyping-basic.rs:18:9: 18:10 StorageLive(_3); // bb0[4]: scope 1 at $DIR/region-subtyping-basic.rs:18:16: 18:17 _3 = const Const(Value(Scalar(0x00000000)): usize); // bb0[5]: scope 1 at $DIR/region-subtyping-basic.rs:18:16: 18:17 @@ -57,10 +57,10 @@ fn main() -> () { bb1: { _2 = &'_#3r _1[_3]; // bb1[0]: scope 1 at $DIR/region-subtyping-basic.rs:18:13: 18:18 - FakeRead(ForLet, _2); // bb1[1]: scope 1 at $DIR/region-subtyping-basic.rs:18:9: 18:10 + FakeRead(ForLet(None), _2); // bb1[1]: scope 1 at $DIR/region-subtyping-basic.rs:18:9: 18:10 StorageLive(_6); // bb1[2]: scope 2 at $DIR/region-subtyping-basic.rs:19:9: 19:10 _6 = _2; // bb1[3]: scope 2 at $DIR/region-subtyping-basic.rs:19:13: 19:14 - FakeRead(ForLet, _6); // bb1[4]: scope 2 at $DIR/region-subtyping-basic.rs:19:9: 19:10 + FakeRead(ForLet(None), _6); // bb1[4]: scope 2 at $DIR/region-subtyping-basic.rs:19:9: 19:10 StorageLive(_7); // bb1[5]: scope 3 at $DIR/region-subtyping-basic.rs:20:8: 20:12 _7 = const Const(Value(Scalar(0x01)): bool); // bb1[6]: scope 3 at $DIR/region-subtyping-basic.rs:20:8: 20:12 switchInt(move _7) -> [Const(Value(Scalar(0x00)): bool): bb3, otherwise: bb2]; // bb1[7]: scope 3 at $DIR/region-subtyping-basic.rs:20:5: 24:6 diff --git a/src/test/mir-opt/nll/region_subtyping_basic.main.nll.0.64bit.mir b/src/test/mir-opt/nll/region_subtyping_basic.main.nll.0.64bit.mir index 00704baa6c19f..6021b6529f911 100644 --- a/src/test/mir-opt/nll/region_subtyping_basic.main.nll.0.64bit.mir +++ b/src/test/mir-opt/nll/region_subtyping_basic.main.nll.0.64bit.mir @@ -46,7 +46,7 @@ fn main() -> () { bb0: { StorageLive(_1); // bb0[0]: scope 0 at $DIR/region-subtyping-basic.rs:17:9: 17:14 _1 = [const Const(Value(Scalar(0x0000000000000001)): usize), const Const(Value(Scalar(0x0000000000000002)): usize), const Const(Value(Scalar(0x0000000000000003)): usize)]; // bb0[1]: scope 0 at $DIR/region-subtyping-basic.rs:17:17: 17:26 - FakeRead(ForLet, _1); // bb0[2]: scope 0 at $DIR/region-subtyping-basic.rs:17:9: 17:14 + FakeRead(ForLet(None), _1); // bb0[2]: scope 0 at $DIR/region-subtyping-basic.rs:17:9: 17:14 StorageLive(_2); // bb0[3]: scope 1 at $DIR/region-subtyping-basic.rs:18:9: 18:10 StorageLive(_3); // bb0[4]: scope 1 at $DIR/region-subtyping-basic.rs:18:16: 18:17 _3 = const Const(Value(Scalar(0x0000000000000000)): usize); // bb0[5]: scope 1 at $DIR/region-subtyping-basic.rs:18:16: 18:17 @@ -57,10 +57,10 @@ fn main() -> () { bb1: { _2 = &'_#3r _1[_3]; // bb1[0]: scope 1 at $DIR/region-subtyping-basic.rs:18:13: 18:18 - FakeRead(ForLet, _2); // bb1[1]: scope 1 at $DIR/region-subtyping-basic.rs:18:9: 18:10 + FakeRead(ForLet(None), _2); // bb1[1]: scope 1 at $DIR/region-subtyping-basic.rs:18:9: 18:10 StorageLive(_6); // bb1[2]: scope 2 at $DIR/region-subtyping-basic.rs:19:9: 19:10 _6 = _2; // bb1[3]: scope 2 at $DIR/region-subtyping-basic.rs:19:13: 19:14 - FakeRead(ForLet, _6); // bb1[4]: scope 2 at $DIR/region-subtyping-basic.rs:19:9: 19:10 + FakeRead(ForLet(None), _6); // bb1[4]: scope 2 at $DIR/region-subtyping-basic.rs:19:9: 19:10 StorageLive(_7); // bb1[5]: scope 3 at $DIR/region-subtyping-basic.rs:20:8: 20:12 _7 = const Const(Value(Scalar(0x01)): bool); // bb1[6]: scope 3 at $DIR/region-subtyping-basic.rs:20:8: 20:12 switchInt(move _7) -> [Const(Value(Scalar(0x00)): bool): bb3, otherwise: bb2]; // bb1[7]: scope 3 at $DIR/region-subtyping-basic.rs:20:5: 24:6 diff --git a/src/test/mir-opt/receiver_ptr_mutability.main.mir_map.0.mir b/src/test/mir-opt/receiver_ptr_mutability.main.mir_map.0.mir index d2d96ff468dfc..f54c8f8ab4a2e 100644 --- a/src/test/mir-opt/receiver_ptr_mutability.main.mir_map.0.mir +++ b/src/test/mir-opt/receiver_ptr_mutability.main.mir_map.0.mir @@ -36,7 +36,7 @@ fn main() -> () { } bb1: { - FakeRead(ForLet, _1); // scope 0 at $DIR/receiver-ptr-mutability.rs:14:9: 14:12 + FakeRead(ForLet(None), _1); // scope 0 at $DIR/receiver-ptr-mutability.rs:14:9: 14:12 AscribeUserType(_1, o, UserTypeProjection { base: UserType(1), projs: [] }); // scope 0 at $DIR/receiver-ptr-mutability.rs:14:14: 14:23 StorageLive(_2); // scope 1 at $DIR/receiver-ptr-mutability.rs:15:5: 15:12 StorageLive(_3); // scope 1 at $DIR/receiver-ptr-mutability.rs:15:5: 15:8 @@ -63,7 +63,7 @@ fn main() -> () { _7 = &_8; // scope 1 at $DIR/receiver-ptr-mutability.rs:18:35: 18:41 _6 = &_7; // scope 1 at $DIR/receiver-ptr-mutability.rs:18:34: 18:41 _5 = &(*_6); // scope 1 at $DIR/receiver-ptr-mutability.rs:18:34: 18:41 - FakeRead(ForLet, _5); // scope 1 at $DIR/receiver-ptr-mutability.rs:18:9: 18:16 + FakeRead(ForLet(None), _5); // scope 1 at $DIR/receiver-ptr-mutability.rs:18:9: 18:16 AscribeUserType(_5, o, UserTypeProjection { base: UserType(3), projs: [] }); // scope 1 at $DIR/receiver-ptr-mutability.rs:18:18: 18:31 StorageDead(_6); // scope 1 at $DIR/receiver-ptr-mutability.rs:18:41: 18:42 StorageLive(_10); // scope 2 at $DIR/receiver-ptr-mutability.rs:19:5: 19:16 diff --git a/src/test/mir-opt/remove_fake_borrows.match_guard.CleanupNonCodegenStatements.diff b/src/test/mir-opt/remove_fake_borrows.match_guard.CleanupNonCodegenStatements.diff index 47027311b4759..4aa388fc67bd0 100644 --- a/src/test/mir-opt/remove_fake_borrows.match_guard.CleanupNonCodegenStatements.diff +++ b/src/test/mir-opt/remove_fake_borrows.match_guard.CleanupNonCodegenStatements.diff @@ -13,7 +13,7 @@ let mut _8: bool; // in scope 0 at $DIR/remove_fake_borrows.rs:8:20: 8:21 bb0: { -- FakeRead(ForMatchedPlace, _1); // scope 0 at $DIR/remove_fake_borrows.rs:7:11: 7:12 +- FakeRead(ForMatchedPlace(None), _1); // scope 0 at $DIR/remove_fake_borrows.rs:7:11: 7:12 + nop; // scope 0 at $DIR/remove_fake_borrows.rs:7:11: 7:12 _3 = discriminant(_1); // scope 0 at $DIR/remove_fake_borrows.rs:8:9: 8:16 switchInt(move _3) -> [1_isize: bb2, otherwise: bb1]; // scope 0 at $DIR/remove_fake_borrows.rs:8:9: 8:16 diff --git a/src/test/mir-opt/simple_match.match_bool.mir_map.0.32bit.mir b/src/test/mir-opt/simple_match.match_bool.mir_map.0.32bit.mir index 5bcb20ca72a3f..841cca7c381f7 100644 --- a/src/test/mir-opt/simple_match.match_bool.mir_map.0.32bit.mir +++ b/src/test/mir-opt/simple_match.match_bool.mir_map.0.32bit.mir @@ -5,7 +5,7 @@ fn match_bool(_1: bool) -> usize { let mut _0: usize; // return place in scope 0 at $DIR/simple-match.rs:5:27: 5:32 bb0: { - FakeRead(ForMatchedPlace, _1); // scope 0 at $DIR/simple-match.rs:6:11: 6:12 + FakeRead(ForMatchedPlace(None), _1); // scope 0 at $DIR/simple-match.rs:6:11: 6:12 switchInt(_1) -> [false: bb2, otherwise: bb1]; // scope 0 at $DIR/simple-match.rs:7:9: 7:13 } diff --git a/src/test/mir-opt/simple_match.match_bool.mir_map.0.64bit.mir b/src/test/mir-opt/simple_match.match_bool.mir_map.0.64bit.mir index 5bcb20ca72a3f..841cca7c381f7 100644 --- a/src/test/mir-opt/simple_match.match_bool.mir_map.0.64bit.mir +++ b/src/test/mir-opt/simple_match.match_bool.mir_map.0.64bit.mir @@ -5,7 +5,7 @@ fn match_bool(_1: bool) -> usize { let mut _0: usize; // return place in scope 0 at $DIR/simple-match.rs:5:27: 5:32 bb0: { - FakeRead(ForMatchedPlace, _1); // scope 0 at $DIR/simple-match.rs:6:11: 6:12 + FakeRead(ForMatchedPlace(None), _1); // scope 0 at $DIR/simple-match.rs:6:11: 6:12 switchInt(_1) -> [false: bb2, otherwise: bb1]; // scope 0 at $DIR/simple-match.rs:7:9: 7:13 } diff --git a/src/test/mir-opt/storage_ranges.main.nll.0.mir b/src/test/mir-opt/storage_ranges.main.nll.0.mir index 6fa83d3de6253..e02580135af38 100644 --- a/src/test/mir-opt/storage_ranges.main.nll.0.mir +++ b/src/test/mir-opt/storage_ranges.main.nll.0.mir @@ -39,7 +39,7 @@ fn main() -> () { bb0: { StorageLive(_1); // scope 0 at $DIR/storage_ranges.rs:4:9: 4:10 _1 = const 0_i32; // scope 0 at $DIR/storage_ranges.rs:4:13: 4:14 - FakeRead(ForLet, _1); // scope 0 at $DIR/storage_ranges.rs:4:9: 4:10 + FakeRead(ForLet(None), _1); // scope 0 at $DIR/storage_ranges.rs:4:9: 4:10 StorageLive(_2); // scope 1 at $DIR/storage_ranges.rs:5:5: 7:6 StorageLive(_3); // scope 1 at $DIR/storage_ranges.rs:6:13: 6:14 StorageLive(_4); // scope 1 at $DIR/storage_ranges.rs:6:18: 6:25 @@ -48,14 +48,14 @@ fn main() -> () { _4 = Option::::Some(move _5); // scope 1 at $DIR/storage_ranges.rs:6:18: 6:25 StorageDead(_5); // scope 1 at $DIR/storage_ranges.rs:6:24: 6:25 _3 = &_4; // scope 1 at $DIR/storage_ranges.rs:6:17: 6:25 - FakeRead(ForLet, _3); // scope 1 at $DIR/storage_ranges.rs:6:13: 6:14 + FakeRead(ForLet(None), _3); // scope 1 at $DIR/storage_ranges.rs:6:13: 6:14 _2 = const (); // scope 1 at $DIR/storage_ranges.rs:5:5: 7:6 StorageDead(_4); // scope 1 at $DIR/storage_ranges.rs:7:5: 7:6 StorageDead(_3); // scope 1 at $DIR/storage_ranges.rs:7:5: 7:6 StorageDead(_2); // scope 1 at $DIR/storage_ranges.rs:7:5: 7:6 StorageLive(_6); // scope 1 at $DIR/storage_ranges.rs:8:9: 8:10 _6 = const 1_i32; // scope 1 at $DIR/storage_ranges.rs:8:13: 8:14 - FakeRead(ForLet, _6); // scope 1 at $DIR/storage_ranges.rs:8:9: 8:10 + FakeRead(ForLet(None), _6); // scope 1 at $DIR/storage_ranges.rs:8:9: 8:10 _0 = const (); // scope 0 at $DIR/storage_ranges.rs:3:11: 9:2 StorageDead(_6); // scope 1 at $DIR/storage_ranges.rs:9:1: 9:2 StorageDead(_1); // scope 0 at $DIR/storage_ranges.rs:9:1: 9:2 diff --git a/src/test/mir-opt/uniform_array_move_out.move_out_by_subslice.mir_map.0.mir b/src/test/mir-opt/uniform_array_move_out.move_out_by_subslice.mir_map.0.mir index d18f6308ded84..7f81d9fc482ff 100644 --- a/src/test/mir-opt/uniform_array_move_out.move_out_by_subslice.mir_map.0.mir +++ b/src/test/mir-opt/uniform_array_move_out.move_out_by_subslice.mir_map.0.mir @@ -48,7 +48,7 @@ fn move_out_by_subslice() -> () { bb4: { StorageDead(_2); // scope 0 at $DIR/uniform_array_move_out.rs:11:26: 11:27 - FakeRead(ForLet, _1); // scope 0 at $DIR/uniform_array_move_out.rs:11:9: 11:10 + FakeRead(ForLet(None), _1); // scope 0 at $DIR/uniform_array_move_out.rs:11:9: 11:10 StorageLive(_6); // scope 1 at $DIR/uniform_array_move_out.rs:12:10: 12:17 _6 = move _1[0..2]; // scope 1 at $DIR/uniform_array_move_out.rs:12:10: 12:17 _0 = const (); // scope 0 at $DIR/uniform_array_move_out.rs:10:27: 13:2 diff --git a/src/test/mir-opt/uniform_array_move_out.move_out_from_end.mir_map.0.mir b/src/test/mir-opt/uniform_array_move_out.move_out_from_end.mir_map.0.mir index eda8e5fd3afe7..62ab494c06628 100644 --- a/src/test/mir-opt/uniform_array_move_out.move_out_from_end.mir_map.0.mir +++ b/src/test/mir-opt/uniform_array_move_out.move_out_from_end.mir_map.0.mir @@ -48,7 +48,7 @@ fn move_out_from_end() -> () { bb4: { StorageDead(_2); // scope 0 at $DIR/uniform_array_move_out.rs:5:26: 5:27 - FakeRead(ForLet, _1); // scope 0 at $DIR/uniform_array_move_out.rs:5:9: 5:10 + FakeRead(ForLet(None), _1); // scope 0 at $DIR/uniform_array_move_out.rs:5:9: 5:10 StorageLive(_6); // scope 1 at $DIR/uniform_array_move_out.rs:6:14: 6:16 _6 = move _1[1 of 2]; // scope 1 at $DIR/uniform_array_move_out.rs:6:14: 6:16 _0 = const (); // scope 0 at $DIR/uniform_array_move_out.rs:4:24: 7:2 diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.abort/abort.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.abort/abort.main.-------.InstrumentCoverage.0.html index 176587af25be0..070fd95f14072 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.abort/abort.main.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.abort/abort.main.-------.InstrumentCoverage.0.html @@ -70,12 +70,12 @@
@0⦊fn main() -> Result<(), u8> { +15:9-15:22: @0[2]: FakeRead(ForLet(None), _1)">@0⦊fn main() -> Result<(), u8> { let mut countdown = 10⦉@0; +15:9-15:22: @0[2]: FakeRead(ForLet(None), _1)"> let mut countdown = 10⦉@0; while @1,2⦊countdown > 0⦉@1,2 { +16:11-16:24: @2[5]: FakeRead(ForMatchedPlace(None), _4)">@1,2⦊countdown > 0⦉@1,2 { if @3,5⦊countdown < 5⦉@3,5 @6,8⦊{ diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.abort/abort.might_abort.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.abort/abort.might_abort.-------.InstrumentCoverage.0.html index a302b974ae1d2..42c1aa0d1adfe 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.abort/abort.might_abort.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.abort/abort.might_abort.-------.InstrumentCoverage.0.html @@ -76,7 +76,7 @@ 7:18-7:31: @1[8]: _8 = &(*_9) 7:18-7:31: @1[9]: _7 = move _8 as &[&str] (Pointer(Unsize)) 7:9-7:33: @1[15]: _15 = () -7:9-7:33: @1[16]: FakeRead(ForMatchedPlace, _15) +7:9-7:33: @1[16]: FakeRead(ForMatchedPlace(None), _15) 7:9-7:33: @1[17]: _32 = const might_abort::promoted[2] 7:9-7:33: @1[18]: _13 = &(*_32) 7:9-7:33: @1[19]: _12 = &(*_13) @@ -90,7 +90,7 @@ 7:18-7:31: @1[8]: _8 = &(*_9) 7:18-7:31: @1[9]: _7 = move _8 as &[&str] (Pointer(Unsize)) 7:9-7:33: @1[15]: _15 = () -7:9-7:33: @1[16]: FakeRead(ForMatchedPlace, _15) +7:9-7:33: @1[16]: FakeRead(ForMatchedPlace(None), _15) 7:9-7:33: @1[17]: _32 = const might_abort::promoted[2] 7:9-7:33: @1[18]: _13 = &(*_32) 7:9-7:33: @1[19]: _12 = &(*_13) @@ -104,7 +104,7 @@ 10:18-10:31: @2[8]: _22 = &(*_23) 10:18-10:31: @2[9]: _21 = move _22 as &[&str] (Pointer(Unsize)) 10:9-10:33: @2[15]: _29 = () -10:9-10:33: @2[16]: FakeRead(ForMatchedPlace, _29) +10:9-10:33: @2[16]: FakeRead(ForMatchedPlace(None), _29) 10:9-10:33: @2[17]: _30 = const might_abort::promoted[0] 10:9-10:33: @2[18]: _27 = &(*_30) 10:9-10:33: @2[19]: _26 = &(*_27) @@ -119,7 +119,7 @@ 10:18-10:31: @2[8]: _22 = &(*_23) 10:18-10:31: @2[9]: _21 = move _22 as &[&str] (Pointer(Unsize)) 10:9-10:33: @2[15]: _29 = () -10:9-10:33: @2[16]: FakeRead(ForMatchedPlace, _29) +10:9-10:33: @2[16]: FakeRead(ForMatchedPlace(None), _29) 10:9-10:33: @2[17]: _30 = const might_abort::promoted[0] 10:9-10:33: @2[18]: _27 = &(*_30) 10:9-10:33: @2[19]: _26 = &(*_27) @@ -134,7 +134,7 @@ 10:18-10:31: @2[8]: _22 = &(*_23) 10:18-10:31: @2[9]: _21 = move _22 as &[&str] (Pointer(Unsize)) 10:9-10:33: @2[15]: _29 = () -10:9-10:33: @2[16]: FakeRead(ForMatchedPlace, _29) +10:9-10:33: @2[16]: FakeRead(ForMatchedPlace(None), _29) 10:9-10:33: @2[17]: _30 = const might_abort::promoted[0] 10:9-10:33: @2[18]: _27 = &(*_30) 10:9-10:33: @2[19]: _26 = &(*_27) @@ -149,7 +149,7 @@ 10:18-10:31: @2[8]: _22 = &(*_23) 10:18-10:31: @2[9]: _21 = move _22 as &[&str] (Pointer(Unsize)) 10:9-10:33: @2[15]: _29 = () -10:9-10:33: @2[16]: FakeRead(ForMatchedPlace, _29) +10:9-10:33: @2[16]: FakeRead(ForMatchedPlace(None), _29) 10:9-10:33: @2[17]: _30 = const might_abort::promoted[0] 10:9-10:33: @2[18]: _27 = &(*_30) 10:9-10:33: @2[19]: _26 = &(*_27) diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.assert/assert.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.assert/assert.main.-------.InstrumentCoverage.0.html index 365e94cd31e50..3deeba9614f19 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.assert/assert.main.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.assert/assert.main.-------.InstrumentCoverage.0.html @@ -70,12 +70,12 @@
@0⦊fn main() -> Result<(),u8> { +10:9-10:22: @0[2]: FakeRead(ForLet(None), _1)">@0⦊fn main() -> Result<(),u8> { let mut countdown = 10⦉@0; +10:9-10:22: @0[2]: FakeRead(ForLet(None), _1)"> let mut countdown = 10⦉@0; while @1,2⦊countdown > 0⦉@1,2 { +11:11-11:24: @2[5]: FakeRead(ForMatchedPlace(None), _4)">@1,2⦊countdown > 0⦉@1,2 { if @3,5⦊countdown == 1⦉@3,5 @6,8⦊{ diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.assert/assert.might_fail_assert.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.assert/assert.might_fail_assert.-------.InstrumentCoverage.0.html index db72a5306ff70..a843ea3f23cb1 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.assert/assert.might_fail_assert.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.assert/assert.might_fail_assert.-------.InstrumentCoverage.0.html @@ -76,7 +76,7 @@ 5:14-5:32: @0[9]: _5 = move _6 as &[&str] (Pointer(Unsize)) 5:34-5:46: @0[17]: _14 = &_1 5:5-5:48: @0[18]: _13 = (move _14,) -5:5-5:48: @0[20]: FakeRead(ForMatchedPlace, _13) +5:5-5:48: @0[20]: FakeRead(ForMatchedPlace(None), _13) 5:5-5:48: @0[22]: _15 = (_13.0: &u32) 5:5-5:48: @0[25]: _17 = &(*_15) 5:5-5:48: @0[27]: _18 = <u32 as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r u32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.executor-block_on-VTABLE-{closure#0}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.executor-block_on-VTABLE-{closure#0}.-------.InstrumentCoverage.0.html index 64fc1568b0085..61fd1f5bf6992 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.executor-block_on-VTABLE-{closure#0}.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.executor-block_on-VTABLE-{closure#0}.-------.InstrumentCoverage.0.html @@ -70,7 +70,7 @@
@0,1,2,3,4,5⦊pub fn block_on<F: Future>(mut future: F) -> F::Output { +120:13-120:24: @5[1]: FakeRead(ForLet(None), _10)">@0,1,2,3,4,5⦊pub fn block_on<F: Future>(mut future: F) -> F::Output { let mut future = unsafe { Pin::new_unchecked(&mut future) }; +120:13-120:24: @5[1]: FakeRead(ForLet(None), _10)"> let mut future = unsafe { Pin::new_unchecked(&mut future) }; +120:13-120:24: @5[1]: FakeRead(ForLet(None), _10)"> static VTABLE: RawWakerVTable = RawWakerVTable::new( +120:13-120:24: @5[1]: FakeRead(ForLet(None), _10)"> static VTABLE: RawWakerVTable = RawWakerVTable::new( |_| unimplemented!("clone"), +120:13-120:24: @5[1]: FakeRead(ForLet(None), _10)"> |_| unimplemented!("clone"), |_| unimplemented!("wake"), +120:13-120:24: @5[1]: FakeRead(ForLet(None), _10)"> |_| unimplemented!("wake"), |_| unimplemented!("wake_by_ref"), +120:13-120:24: @5[1]: FakeRead(ForLet(None), _10)"> |_| unimplemented!("wake_by_ref"), |_| (), +120:13-120:24: @5[1]: FakeRead(ForLet(None), _10)"> |_| (), ); +120:13-120:24: @5[1]: FakeRead(ForLet(None), _10)"> ); let waker = unsafe { Waker::from_raw(RawWaker::new(core::ptr::null(), &VTABLE)) }; +120:13-120:24: @5[1]: FakeRead(ForLet(None), _10)"> let waker = unsafe { Waker::from_raw(RawWaker::new(core::ptr::null(), &VTABLE)) }; let mut context = Context::from_waker(&waker)⦉@0,1,2,3,4,5; +120:13-120:24: @5[1]: FakeRead(ForLet(None), _10)"> let mut context = Context::from_waker(&waker)⦉@0,1,2,3,4,5; loop { if let Poll::Ready(@10,12,14,15,16,17⦊val⦉@10,12,14,15,16,17) = @6,7,8,9⦊future.as_mut().poll(&mut context)⦉@6,7,8,9 { +123:39-123:73: @9[2]: FakeRead(ForMatchedPlace(None), _14)">@6,7,8,9⦊future.as_mut().poll(&mut context)⦉@6,7,8,9 { break @10,12,14,15,16,17⦊val⦉@10,12,14,15,16,17; }@11,13⦊⦉@11,13 } diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.g-{closure#0}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.g-{closure#0}.-------.InstrumentCoverage.0.html index b10012621b7dd..35cf96b6cb16e 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.g-{closure#0}.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.g-{closure#0}.-------.InstrumentCoverage.0.html @@ -69,12 +69,12 @@ -
@0,3,4⦊{ - match x⦉@0,3,4 { +
@0,3,4⦊{ + match x⦉@0,3,4 { @17⦊y⦉@17 if @0,3,4⦊e()⦉@0,3,4.await == @10,13,15,16⦊y⦉@10,13,15,16 => @17⦊()⦉@17, +23:14-23:17: @4[0]: FakeRead(ForMatchedPlace(None), _8)">@0,3,4⦊e()⦉@0,3,4.await == @10,13,15,16⦊y⦉@10,13,15,16 => @17⦊()⦉@17, @33⦊y⦉@33 if @1,19,20⦊f()⦉@1,19,20.await == @26,29,31,32⦊y⦉@26,29,31,32 => @33⦊()⦉@33, +24:14-24:17: @20[0]: FakeRead(ForMatchedPlace(None), _29)">@1,19,20⦊f()⦉@1,19,20.await == @26,29,31,32⦊y⦉@26,29,31,32 => @33⦊()⦉@33, _ => @2⦊()⦉@2, } }@35,36⦊⦉@35,36
diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.h-{closure#0}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.h-{closure#0}.-------.InstrumentCoverage.0.html index 6b4b43f836580..1d9f1164a0284 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.h-{closure#0}.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.h-{closure#0}.-------.InstrumentCoverage.0.html @@ -69,12 +69,12 @@ -
@0,2,3⦊{ // The function signature is counted when called, but the body is not - // executed (not awaited) so the open brace has a `0` count (at least when - // displayed with `llvm-cov show` in color-mode). - match x⦉@0,2,3 { +
@0,2,3⦊{ // The function signature is counted when called, but the body is not + // executed (not awaited) so the open brace has a `0` count (at least when + // displayed with `llvm-cov show` in color-mode). + match x⦉@0,2,3 { @17⦊y⦉@17 if @0,2,3⦊foo()⦉@0,2,3.await[@9,12,14,15,16⦊y⦉@9,12,14,15,16] => @17⦊()⦉@17, +33:14-33:19: @3[0]: FakeRead(ForMatchedPlace(None), _8)">@0,2,3⦊foo()⦉@0,2,3.await[@9,12,14,15,16⦊y⦉@9,12,14,15,16] => @17⦊()⦉@17, _ => @1⦊()⦉@1, } }@19,20⦊⦉@19,20
diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.i-{closure#0}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.i-{closure#0}.-------.InstrumentCoverage.0.html index 1c63875a8be9b..8d57fa218897a 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.i-{closure#0}.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.i-{closure#0}.-------.InstrumentCoverage.0.html @@ -69,18 +69,18 @@ -
@0,3,4⦊{ // line coverage is 1, but there are 2 regions: - // (a) the function signature, counted when the function is called; and - // (b) the open brace for the function body, counted once when the body is - // executed asynchronously. - match x⦉@0,3,4 { +
@0,3,4⦊{ // line coverage is 1, but there are 2 regions: + // (a) the function signature, counted when the function is called; and + // (b) the open brace for the function body, counted once when the body is + // executed asynchronously. + match x⦉@0,3,4 { @17,19⦊y⦉@17,19 if @0,3,4⦊c(x)⦉@0,3,4.await == @0,3,4⦊c(x)⦉@0,3,4.await == @10,13,15,16⦊y + 1⦉@10,13,15,16 => { @17,19⦊d()⦉@17,19.await; } +43:39-43:42: @19[0]: FakeRead(ForMatchedPlace(None), _28)">@17,19⦊d()⦉@17,19.await; } @46⦊y⦉@46 if @1,32,33⦊f()⦉@1,32,33.await == @1,32,33⦊f()⦉@1,32,33.await == @39,42,44,45⦊y + 1⦉@39,42,44,45 => @46⦊()⦉@46, _ => @2⦊()⦉@2, } diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.j.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.j.-------.InstrumentCoverage.0.html index 2b43c7bd25d90..eca27369ba955 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.j.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.j.-------.InstrumentCoverage.0.html @@ -69,26 +69,26 @@ -
@0,3,4⦊fn j(x: u8) { - // non-async versions of `c()`, `d()`, and `f()` to make it similar to async `i()`. - fn c(x: u8) -> u8 { - if x == 8 { - 1 // This line appears covered, but the 1-character expression span covering the `1` - // is not executed. (`llvm-cov show` displays a `^0` below the `1` ). This is because - // `fn j()` executes the open brace for the funciton body, followed by the function's - // first executable statement, `match x`. Inner function declarations are not - // "visible" to the MIR for `j()`, so the code region counts all lines between the - // open brace and the first statement as executed, which is, in a sense, true. - // `llvm-cov show` overcomes this kind of situation by showing the actual counts - // of the enclosed coverages, (that is, the `1` expression was not executed, and - // accurately displays a `0`). - } else { - 0 - } - } - fn d() -> u8 { 1 } - fn f() -> u8 { 1 } - match x⦉@0,3,4 { +
@0,3,4⦊fn j(x: u8) { + // non-async versions of `c()`, `d()`, and `f()` to make it similar to async `i()`. + fn c(x: u8) -> u8 { + if x == 8 { + 1 // This line appears covered, but the 1-character expression span covering the `1` + // is not executed. (`llvm-cov show` displays a `^0` below the `1` ). This is because + // `fn j()` executes the open brace for the funciton body, followed by the function's + // first executable statement, `match x`. Inner function declarations are not + // "visible" to the MIR for `j()`, so the code region counts all lines between the + // open brace and the first statement as executed, which is, in a sense, true. + // `llvm-cov show` overcomes this kind of situation by showing the actual counts + // of the enclosed coverages, (that is, the `1` expression was not executed, and + // accurately displays a `0`). + } else { + 0 + } + } + fn d() -> u8 { 1 } + fn f() -> u8 { 1 } + match x⦉@0,3,4 { @5,7⦊y⦉@5,7 if @0⦊fn k(x: u8) { // unused function - match x⦉@0 { +
@0⦊fn k(x: u8) { // unused function + match x⦉@0 { 1 => @1,4⦊()⦉@1,4, 2 => @2,5⦊()⦉@2,5, _ => @3⦊()⦉@3, diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.l.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.l.-------.InstrumentCoverage.0.html index cd92b88c24cbb..52dad1a149587 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.l.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.l.-------.InstrumentCoverage.0.html @@ -69,8 +69,8 @@ -
@0⦊fn l(x: u8) { - match x⦉@0 { +
@0⦊fn l(x: u8) { + match x⦉@0 { 1 => @1,4⦊()⦉@1,4, 2 => @2,5⦊()⦉@2,5, _ => @3⦊()⦉@3, diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.m-{closure#0}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.m-{closure#0}.-------.InstrumentCoverage.0.html index 5cec484a964da..2c7889659a2c1 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.m-{closure#0}.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.m-{closure#0}.-------.InstrumentCoverage.0.html @@ -70,7 +70,7 @@
@0⦊{ x - 1 }⦉@0
diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.main.-------.InstrumentCoverage.0.html index b892af0ed37d5..7280bf9a8c92b 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.main.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.async/async.main.-------.InstrumentCoverage.0.html @@ -73,7 +73,7 @@ 95:13-95:17: @2.Call: _2 = h(const 9_usize) -> [return: bb3, unwind: bb16] 96:31-96:35: @4.Call: _4 = i(const 8_u8) -> [return: bb5, unwind: bb16] 96:22-96:36: @5.Call: _3 = std::boxed::Box::<impl std::future::Future>::pin(move _4) -> [return: bb6, unwind: bb15] -96:9-96:19: @6[1]: FakeRead(ForLet, _3) +96:9-96:19: @6[1]: FakeRead(ForLet(None), _3) 97:5-97:9: @6.Call: _5 = j(const 7_u8) -> [return: bb7, unwind: bb14] 98:5-98:9: @7.Call: _6 = l(const 6_u8) -> [return: bb8, unwind: bb14] 99:13-99:17: @8.Call: _7 = m(const 5_u8) -> [return: bb9, unwind: bb14] @@ -86,7 +86,7 @@ 95:13-95:17: @2.Call: _2 = h(const 9_usize) -> [return: bb3, unwind: bb16] 96:31-96:35: @4.Call: _4 = i(const 8_u8) -> [return: bb5, unwind: bb16] 96:22-96:36: @5.Call: _3 = std::boxed::Box::<impl std::future::Future>::pin(move _4) -> [return: bb6, unwind: bb15] -96:9-96:19: @6[1]: FakeRead(ForLet, _3) +96:9-96:19: @6[1]: FakeRead(ForLet(None), _3) 97:5-97:9: @6.Call: _5 = j(const 7_u8) -> [return: bb7, unwind: bb14] 98:5-98:9: @7.Call: _6 = l(const 6_u8) -> [return: bb8, unwind: bb14] 99:13-99:17: @8.Call: _7 = m(const 5_u8) -> [return: bb9, unwind: bb14] @@ -99,7 +99,7 @@ 95:13-95:17: @2.Call: _2 = h(const 9_usize) -> [return: bb3, unwind: bb16] 96:31-96:35: @4.Call: _4 = i(const 8_u8) -> [return: bb5, unwind: bb16] 96:22-96:36: @5.Call: _3 = std::boxed::Box::<impl std::future::Future>::pin(move _4) -> [return: bb6, unwind: bb15] -96:9-96:19: @6[1]: FakeRead(ForLet, _3) +96:9-96:19: @6[1]: FakeRead(ForLet(None), _3) 97:5-97:9: @6.Call: _5 = j(const 7_u8) -> [return: bb7, unwind: bb14] 98:5-98:9: @7.Call: _6 = l(const 6_u8) -> [return: bb8, unwind: bb14] 99:13-99:17: @8.Call: _7 = m(const 5_u8) -> [return: bb9, unwind: bb14] @@ -112,7 +112,7 @@ 95:13-95:17: @2.Call: _2 = h(const 9_usize) -> [return: bb3, unwind: bb16] 96:31-96:35: @4.Call: _4 = i(const 8_u8) -> [return: bb5, unwind: bb16] 96:22-96:36: @5.Call: _3 = std::boxed::Box::<impl std::future::Future>::pin(move _4) -> [return: bb6, unwind: bb15] -96:9-96:19: @6[1]: FakeRead(ForLet, _3) +96:9-96:19: @6[1]: FakeRead(ForLet(None), _3) 97:5-97:9: @6.Call: _5 = j(const 7_u8) -> [return: bb7, unwind: bb14] 98:5-98:9: @7.Call: _6 = l(const 6_u8) -> [return: bb8, unwind: bb14] 99:13-99:17: @8.Call: _7 = m(const 5_u8) -> [return: bb9, unwind: bb14] @@ -125,7 +125,7 @@ 95:13-95:17: @2.Call: _2 = h(const 9_usize) -> [return: bb3, unwind: bb16] 96:31-96:35: @4.Call: _4 = i(const 8_u8) -> [return: bb5, unwind: bb16] 96:22-96:36: @5.Call: _3 = std::boxed::Box::<impl std::future::Future>::pin(move _4) -> [return: bb6, unwind: bb15] -96:9-96:19: @6[1]: FakeRead(ForLet, _3) +96:9-96:19: @6[1]: FakeRead(ForLet(None), _3) 97:5-97:9: @6.Call: _5 = j(const 7_u8) -> [return: bb7, unwind: bb14] 98:5-98:9: @7.Call: _6 = l(const 6_u8) -> [return: bb8, unwind: bb14] 99:13-99:17: @8.Call: _7 = m(const 5_u8) -> [return: bb9, unwind: bb14] @@ -138,7 +138,7 @@ 95:13-95:17: @2.Call: _2 = h(const 9_usize) -> [return: bb3, unwind: bb16] 96:31-96:35: @4.Call: _4 = i(const 8_u8) -> [return: bb5, unwind: bb16] 96:22-96:36: @5.Call: _3 = std::boxed::Box::<impl std::future::Future>::pin(move _4) -> [return: bb6, unwind: bb15] -96:9-96:19: @6[1]: FakeRead(ForLet, _3) +96:9-96:19: @6[1]: FakeRead(ForLet(None), _3) 97:5-97:9: @6.Call: _5 = j(const 7_u8) -> [return: bb7, unwind: bb14] 98:5-98:9: @7.Call: _6 = l(const 6_u8) -> [return: bb8, unwind: bb14] 99:13-99:17: @8.Call: _7 = m(const 5_u8) -> [return: bb9, unwind: bb14] @@ -151,7 +151,7 @@ 95:13-95:17: @2.Call: _2 = h(const 9_usize) -> [return: bb3, unwind: bb16] 96:31-96:35: @4.Call: _4 = i(const 8_u8) -> [return: bb5, unwind: bb16] 96:22-96:36: @5.Call: _3 = std::boxed::Box::<impl std::future::Future>::pin(move _4) -> [return: bb6, unwind: bb15] -96:9-96:19: @6[1]: FakeRead(ForLet, _3) +96:9-96:19: @6[1]: FakeRead(ForLet(None), _3) 97:5-97:9: @6.Call: _5 = j(const 7_u8) -> [return: bb7, unwind: bb14] 98:5-98:9: @7.Call: _6 = l(const 6_u8) -> [return: bb8, unwind: bb14] 99:13-99:17: @8.Call: _7 = m(const 5_u8) -> [return: bb9, unwind: bb14] @@ -164,7 +164,7 @@ 95:13-95:17: @2.Call: _2 = h(const 9_usize) -> [return: bb3, unwind: bb16] 96:31-96:35: @4.Call: _4 = i(const 8_u8) -> [return: bb5, unwind: bb16] 96:22-96:36: @5.Call: _3 = std::boxed::Box::<impl std::future::Future>::pin(move _4) -> [return: bb6, unwind: bb15] -96:9-96:19: @6[1]: FakeRead(ForLet, _3) +96:9-96:19: @6[1]: FakeRead(ForLet(None), _3) 97:5-97:9: @6.Call: _5 = j(const 7_u8) -> [return: bb7, unwind: bb14] 98:5-98:9: @7.Call: _6 = l(const 6_u8) -> [return: bb8, unwind: bb14] 99:13-99:17: @8.Call: _7 = m(const 5_u8) -> [return: bb9, unwind: bb14] @@ -177,7 +177,7 @@ 95:13-95:17: @2.Call: _2 = h(const 9_usize) -> [return: bb3, unwind: bb16] 96:31-96:35: @4.Call: _4 = i(const 8_u8) -> [return: bb5, unwind: bb16] 96:22-96:36: @5.Call: _3 = std::boxed::Box::<impl std::future::Future>::pin(move _4) -> [return: bb6, unwind: bb15] -96:9-96:19: @6[1]: FakeRead(ForLet, _3) +96:9-96:19: @6[1]: FakeRead(ForLet(None), _3) 97:5-97:9: @6.Call: _5 = j(const 7_u8) -> [return: bb7, unwind: bb14] 98:5-98:9: @7.Call: _6 = l(const 6_u8) -> [return: bb8, unwind: bb14] 99:13-99:17: @8.Call: _7 = m(const 5_u8) -> [return: bb9, unwind: bb14] diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.closure/closure.main-{closure#0}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.closure/closure.main-{closure#0}.-------.InstrumentCoverage.0.html index 3998295a0525e..11b77d88c97b1 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.closure/closure.main-{closure#0}.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.closure/closure.main-{closure#0}.-------.InstrumentCoverage.0.html @@ -71,13 +71,13 @@
|| @0⦊{ let mut countdown = 0; if is_false⦉@0 @1⦊{ || @0⦊{ let mut countdown = 0; if is_false⦉@0 @1⦊{ || @0⦊{ let mut countdown = 0; if is_false⦉@0 @1⦊{ || @0⦊{ let mut countdown = 0; if is_false⦉@0 @1⦊{ |val| @0⦊{ let mut countdown = 0; if is_false⦉@0 @1⦊{ @3,4,5,6,7⦊format!("'{}'", val) }⦉@3,4,5,6,7
diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.closure/closure.main-{closure#5}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.closure/closure.main-{closure#5}.-------.InstrumentCoverage.0.html index 1c19aa8eeefaa..1165aee931be8 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.closure/closure.main-{closure#5}.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.closure/closure.main-{closure#5}.-------.InstrumentCoverage.0.html @@ -74,7 +74,7 @@ 96:23-98:6: @0[7]: _6 = &(*_7) 96:23-98:6: @0[8]: _5 = move _6 as &[&str] (Pointer(Unsize)) 97:28-97:61: @0[14]: _13 = () -97:28-97:61: @0[15]: FakeRead(ForMatchedPlace, _13) +97:28-97:61: @0[15]: FakeRead(ForMatchedPlace(None), _13) 97:28-97:61: @0[16]: _14 = const main::{closure#5}::promoted[0] 97:28-97:61: @0[17]: _11 = &(*_14) 97:28-97:61: @0[18]: _10 = &(*_11) @@ -88,7 +88,7 @@ 96:23-98:6: @0[7]: _6 = &(*_7) 96:23-98:6: @0[8]: _5 = move _6 as &[&str] (Pointer(Unsize)) 97:28-97:61: @0[14]: _13 = () -97:28-97:61: @0[15]: FakeRead(ForMatchedPlace, _13) +97:28-97:61: @0[15]: FakeRead(ForMatchedPlace(None), _13) 97:28-97:61: @0[16]: _14 = const main::{closure#5}::promoted[0] 97:28-97:61: @0[17]: _11 = &(*_14) 97:28-97:61: @0[18]: _10 = &(*_11) @@ -102,7 +102,7 @@ 96:23-98:6: @0[7]: _6 = &(*_7) 96:23-98:6: @0[8]: _5 = move _6 as &[&str] (Pointer(Unsize)) 97:28-97:61: @0[14]: _13 = () -97:28-97:61: @0[15]: FakeRead(ForMatchedPlace, _13) +97:28-97:61: @0[15]: FakeRead(ForMatchedPlace(None), _13) 97:28-97:61: @0[16]: _14 = const main::{closure#5}::promoted[0] 97:28-97:61: @0[17]: _11 = &(*_14) 97:28-97:61: @0[18]: _10 = &(*_11) diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.closure/closure.main-{closure#6}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.closure/closure.main-{closure#6}.-------.InstrumentCoverage.0.html index 74c75c6c46ca2..5bf085dae67c3 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.closure/closure.main-{closure#6}.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.closure/closure.main-{closure#6}.-------.InstrumentCoverage.0.html @@ -74,7 +74,7 @@ 141:70-141:82: @0[7]: _6 = &(*_7) 141:70-141:82: @0[8]: _5 = move _6 as &[&str] (Pointer(Unsize)) 141:61-141:83: @0[14]: _13 = () -141:61-141:83: @0[15]: FakeRead(ForMatchedPlace, _13) +141:61-141:83: @0[15]: FakeRead(ForMatchedPlace(None), _13) 141:61-141:83: @0[16]: _14 = const main::{closure#6}::promoted[0] 141:61-141:83: @0[17]: _11 = &(*_14) 141:61-141:83: @0[18]: _10 = &(*_11) diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.closure/closure.main-{closure#7}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.closure/closure.main-{closure#7}.-------.InstrumentCoverage.0.html index 386fb1b9e6f95..fef0dedea49d3 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.closure/closure.main-{closure#7}.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.closure/closure.main-{closure#7}.-------.InstrumentCoverage.0.html @@ -74,7 +74,7 @@ 144:18-144:30: @0[7]: _6 = &(*_7) 144:18-144:30: @0[8]: _5 = move _6 as &[&str] (Pointer(Unsize)) 144:9-144:31: @0[14]: _13 = () -144:9-144:31: @0[15]: FakeRead(ForMatchedPlace, _13) +144:9-144:31: @0[15]: FakeRead(ForMatchedPlace(None), _13) 144:9-144:31: @0[16]: _14 = const main::{closure#7}::promoted[0] 144:9-144:31: @0[17]: _11 = &(*_14) 144:9-144:31: @0[18]: _10 = &(*_11) @@ -88,7 +88,7 @@ 144:18-144:30: @0[7]: _6 = &(*_7) 144:18-144:30: @0[8]: _5 = move _6 as &[&str] (Pointer(Unsize)) 144:9-144:31: @0[14]: _13 = () -144:9-144:31: @0[15]: FakeRead(ForMatchedPlace, _13) +144:9-144:31: @0[15]: FakeRead(ForMatchedPlace(None), _13) 144:9-144:31: @0[16]: _14 = const main::{closure#7}::promoted[0] 144:9-144:31: @0[17]: _11 = &(*_14) 144:9-144:31: @0[18]: _10 = &(*_11) @@ -102,7 +102,7 @@ 144:18-144:30: @0[7]: _6 = &(*_7) 144:18-144:30: @0[8]: _5 = move _6 as &[&str] (Pointer(Unsize)) 144:9-144:31: @0[14]: _13 = () -144:9-144:31: @0[15]: FakeRead(ForMatchedPlace, _13) +144:9-144:31: @0[15]: FakeRead(ForMatchedPlace(None), _13) 144:9-144:31: @0[16]: _14 = const main::{closure#7}::promoted[0] 144:9-144:31: @0[17]: _11 = &(*_14) 144:9-144:31: @0[18]: _10 = &(*_11) diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.closure/closure.main-{closure#8}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.closure/closure.main-{closure#8}.-------.InstrumentCoverage.0.html index f9da6ac9dfc34..4d56ee60d3f86 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.closure/closure.main-{closure#8}.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.closure/closure.main-{closure#8}.-------.InstrumentCoverage.0.html @@ -76,7 +76,7 @@ 149:18-149:30: @0[7]: _6 = &(*_7) 149:18-149:30: @0[8]: _5 = move _6 as &[&str] (Pointer(Unsize)) 149:9-149:31: @0[14]: _13 = () -149:9-149:31: @0[15]: FakeRead(ForMatchedPlace, _13) +149:9-149:31: @0[15]: FakeRead(ForMatchedPlace(None), _13) 149:9-149:31: @0[16]: _14 = const main::{closure#8}::promoted[0] 149:9-149:31: @0[17]: _11 = &(*_14) 149:9-149:31: @0[18]: _10 = &(*_11) diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.closure/closure.main-{closure#9}.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.closure/closure.main-{closure#9}.-------.InstrumentCoverage.0.html index e259fc9bb67e7..46725699bc8d4 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.closure/closure.main-{closure#9}.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.closure/closure.main-{closure#9}.-------.InstrumentCoverage.0.html @@ -76,7 +76,7 @@ 153:18-153:30: @0[7]: _6 = &(*_7) 153:18-153:30: @0[8]: _5 = move _6 as &[&str] (Pointer(Unsize)) 153:9-153:31: @0[14]: _13 = () -153:9-153:31: @0[15]: FakeRead(ForMatchedPlace, _13) +153:9-153:31: @0[15]: FakeRead(ForMatchedPlace(None), _13) 153:9-153:31: @0[16]: _14 = const main::{closure#9}::promoted[0] 153:9-153:31: @0[17]: _11 = &(*_14) 153:9-153:31: @0[18]: _10 = &(*_11) diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.closure/closure.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.closure/closure.main.-------.InstrumentCoverage.0.html index a7d1728114ec9..fe28515a3c981 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.closure/closure.main.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.closure/closure.main.-------.InstrumentCoverage.0.html @@ -73,13 +73,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -88,7 +88,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -105,13 +105,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -120,7 +120,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -137,13 +137,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -152,7 +152,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -169,13 +169,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -184,7 +184,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -201,13 +201,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -216,7 +216,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -233,13 +233,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -248,7 +248,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -265,13 +265,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -280,7 +280,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -297,13 +297,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -312,7 +312,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -329,13 +329,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -344,7 +344,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -361,13 +361,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -376,7 +376,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -393,13 +393,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -408,7 +408,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -425,13 +425,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -440,7 +440,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -457,13 +457,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -472,7 +472,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -489,13 +489,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -504,7 +504,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -521,13 +521,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -536,7 +536,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -553,13 +553,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -568,7 +568,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -591,13 +591,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -606,7 +606,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -621,19 +621,19 @@ 29:24-29:58: @10.Call: _31 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb11, unwind: bb55] 29:19-29:59: @11[0]: _30 = std::option::Option::<std::string::String>::Some(move _31) 33:9-40:6: @14[3]: _33 = &_5 -31:9-31:10: @14[6]: FakeRead(ForLet, _32) +31:9-31:10: @14[6]: FakeRead(ForLet(None), _32) 3:11-155:2: @41[38]: _0 = const ()">@0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42⦊ ) ); some_string = Some(String::from("the string content")); let a = ⦉@0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42|| { let mut countdown = 0; @@ -921,13 +921,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -936,7 +936,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -951,7 +951,7 @@ 29:24-29:58: @10.Call: _31 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb11, unwind: bb55] 29:19-29:59: @11[0]: _30 = std::option::Option::<std::string::String>::Some(move _31) 33:9-40:6: @14[3]: _33 = &_5 -31:9-31:10: @14[6]: FakeRead(ForLet, _32) +31:9-31:10: @14[6]: FakeRead(ForLet(None), _32) 42:9-42:32: @14[13]: _136 = const main::promoted[3] 42:9-42:32: @14[14]: _39 = &(*_136) 42:9-42:32: @14[15]: _38 = &(*_39) @@ -961,7 +961,7 @@ 44:9-49:10: @14.Call: _47 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:33:9: 40:6]>(move _48, move _49) -> [return: bb15, unwind: bb51] 44:9-49:10: @15[2]: _46 = &_47 41:5-50:7: @15[3]: _45 = (move _46,) -41:5-50:7: @15[5]: FakeRead(ForMatchedPlace, _45) +41:5-50:7: @15[5]: FakeRead(ForMatchedPlace(None), _45) 41:5-50:7: @15[7]: _50 = (_45.0: &std::string::String) 41:5-50:7: @15[10]: _52 = &(*_50) 41:5-50:7: @15[12]: _53 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -982,7 +982,7 @@ 56:9-68:10: @21.Call: _68 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:60:13: 67:14]>(move _69, move _70) -> [return: bb22, unwind: bb48] 56:9-68:10: @22[2]: _67 = &_68 53:5-69:7: @22[3]: _66 = (move _67,) -53:5-69:7: @22[5]: FakeRead(ForMatchedPlace, _66) +53:5-69:7: @22[5]: FakeRead(ForMatchedPlace(None), _66) 53:5-69:7: @22[7]: _72 = (_66.0: &std::string::String) 53:5-69:7: @22[10]: _74 = &(*_72) 53:5-69:7: @22[12]: _75 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -999,13 +999,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -1014,7 +1014,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1029,7 +1029,7 @@ 29:24-29:58: @10.Call: _31 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb11, unwind: bb55] 29:19-29:59: @11[0]: _30 = std::option::Option::<std::string::String>::Some(move _31) 33:9-40:6: @14[3]: _33 = &_5 -31:9-31:10: @14[6]: FakeRead(ForLet, _32) +31:9-31:10: @14[6]: FakeRead(ForLet(None), _32) 42:9-42:32: @14[13]: _136 = const main::promoted[3] 42:9-42:32: @14[14]: _39 = &(*_136) 42:9-42:32: @14[15]: _38 = &(*_39) @@ -1039,7 +1039,7 @@ 44:9-49:10: @14.Call: _47 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:33:9: 40:6]>(move _48, move _49) -> [return: bb15, unwind: bb51] 44:9-49:10: @15[2]: _46 = &_47 41:5-50:7: @15[3]: _45 = (move _46,) -41:5-50:7: @15[5]: FakeRead(ForMatchedPlace, _45) +41:5-50:7: @15[5]: FakeRead(ForMatchedPlace(None), _45) 41:5-50:7: @15[7]: _50 = (_45.0: &std::string::String) 41:5-50:7: @15[10]: _52 = &(*_50) 41:5-50:7: @15[12]: _53 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1060,7 +1060,7 @@ 56:9-68:10: @21.Call: _68 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:60:13: 67:14]>(move _69, move _70) -> [return: bb22, unwind: bb48] 56:9-68:10: @22[2]: _67 = &_68 53:5-69:7: @22[3]: _66 = (move _67,) -53:5-69:7: @22[5]: FakeRead(ForMatchedPlace, _66) +53:5-69:7: @22[5]: FakeRead(ForMatchedPlace(None), _66) 53:5-69:7: @22[7]: _72 = (_66.0: &std::string::String) 53:5-69:7: @22[10]: _74 = &(*_72) 53:5-69:7: @22[12]: _75 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1077,13 +1077,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -1092,7 +1092,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1107,7 +1107,7 @@ 29:24-29:58: @10.Call: _31 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb11, unwind: bb55] 29:19-29:59: @11[0]: _30 = std::option::Option::<std::string::String>::Some(move _31) 33:9-40:6: @14[3]: _33 = &_5 -31:9-31:10: @14[6]: FakeRead(ForLet, _32) +31:9-31:10: @14[6]: FakeRead(ForLet(None), _32) 42:9-42:32: @14[13]: _136 = const main::promoted[3] 42:9-42:32: @14[14]: _39 = &(*_136) 42:9-42:32: @14[15]: _38 = &(*_39) @@ -1117,7 +1117,7 @@ 44:9-49:10: @14.Call: _47 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:33:9: 40:6]>(move _48, move _49) -> [return: bb15, unwind: bb51] 44:9-49:10: @15[2]: _46 = &_47 41:5-50:7: @15[3]: _45 = (move _46,) -41:5-50:7: @15[5]: FakeRead(ForMatchedPlace, _45) +41:5-50:7: @15[5]: FakeRead(ForMatchedPlace(None), _45) 41:5-50:7: @15[7]: _50 = (_45.0: &std::string::String) 41:5-50:7: @15[10]: _52 = &(*_50) 41:5-50:7: @15[12]: _53 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1138,7 +1138,7 @@ 56:9-68:10: @21.Call: _68 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:60:13: 67:14]>(move _69, move _70) -> [return: bb22, unwind: bb48] 56:9-68:10: @22[2]: _67 = &_68 53:5-69:7: @22[3]: _66 = (move _67,) -53:5-69:7: @22[5]: FakeRead(ForMatchedPlace, _66) +53:5-69:7: @22[5]: FakeRead(ForMatchedPlace(None), _66) 53:5-69:7: @22[7]: _72 = (_66.0: &std::string::String) 53:5-69:7: @22[10]: _74 = &(*_72) 53:5-69:7: @22[12]: _75 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1155,13 +1155,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -1170,7 +1170,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1185,7 +1185,7 @@ 29:24-29:58: @10.Call: _31 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb11, unwind: bb55] 29:19-29:59: @11[0]: _30 = std::option::Option::<std::string::String>::Some(move _31) 33:9-40:6: @14[3]: _33 = &_5 -31:9-31:10: @14[6]: FakeRead(ForLet, _32) +31:9-31:10: @14[6]: FakeRead(ForLet(None), _32) 42:9-42:32: @14[13]: _136 = const main::promoted[3] 42:9-42:32: @14[14]: _39 = &(*_136) 42:9-42:32: @14[15]: _38 = &(*_39) @@ -1195,7 +1195,7 @@ 44:9-49:10: @14.Call: _47 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:33:9: 40:6]>(move _48, move _49) -> [return: bb15, unwind: bb51] 44:9-49:10: @15[2]: _46 = &_47 41:5-50:7: @15[3]: _45 = (move _46,) -41:5-50:7: @15[5]: FakeRead(ForMatchedPlace, _45) +41:5-50:7: @15[5]: FakeRead(ForMatchedPlace(None), _45) 41:5-50:7: @15[7]: _50 = (_45.0: &std::string::String) 41:5-50:7: @15[10]: _52 = &(*_50) 41:5-50:7: @15[12]: _53 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1216,7 +1216,7 @@ 56:9-68:10: @21.Call: _68 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:60:13: 67:14]>(move _69, move _70) -> [return: bb22, unwind: bb48] 56:9-68:10: @22[2]: _67 = &_68 53:5-69:7: @22[3]: _66 = (move _67,) -53:5-69:7: @22[5]: FakeRead(ForMatchedPlace, _66) +53:5-69:7: @22[5]: FakeRead(ForMatchedPlace(None), _66) 53:5-69:7: @22[7]: _72 = (_66.0: &std::string::String) 53:5-69:7: @22[10]: _74 = &(*_72) 53:5-69:7: @22[12]: _75 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1233,13 +1233,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -1248,7 +1248,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1263,7 +1263,7 @@ 29:24-29:58: @10.Call: _31 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb11, unwind: bb55] 29:19-29:59: @11[0]: _30 = std::option::Option::<std::string::String>::Some(move _31) 33:9-40:6: @14[3]: _33 = &_5 -31:9-31:10: @14[6]: FakeRead(ForLet, _32) +31:9-31:10: @14[6]: FakeRead(ForLet(None), _32) 42:9-42:32: @14[13]: _136 = const main::promoted[3] 42:9-42:32: @14[14]: _39 = &(*_136) 42:9-42:32: @14[15]: _38 = &(*_39) @@ -1273,7 +1273,7 @@ 44:9-49:10: @14.Call: _47 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:33:9: 40:6]>(move _48, move _49) -> [return: bb15, unwind: bb51] 44:9-49:10: @15[2]: _46 = &_47 41:5-50:7: @15[3]: _45 = (move _46,) -41:5-50:7: @15[5]: FakeRead(ForMatchedPlace, _45) +41:5-50:7: @15[5]: FakeRead(ForMatchedPlace(None), _45) 41:5-50:7: @15[7]: _50 = (_45.0: &std::string::String) 41:5-50:7: @15[10]: _52 = &(*_50) 41:5-50:7: @15[12]: _53 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1294,7 +1294,7 @@ 56:9-68:10: @21.Call: _68 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:60:13: 67:14]>(move _69, move _70) -> [return: bb22, unwind: bb48] 56:9-68:10: @22[2]: _67 = &_68 53:5-69:7: @22[3]: _66 = (move _67,) -53:5-69:7: @22[5]: FakeRead(ForMatchedPlace, _66) +53:5-69:7: @22[5]: FakeRead(ForMatchedPlace(None), _66) 53:5-69:7: @22[7]: _72 = (_66.0: &std::string::String) 53:5-69:7: @22[10]: _74 = &(*_72) 53:5-69:7: @22[12]: _75 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1311,13 +1311,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -1326,7 +1326,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1341,7 +1341,7 @@ 29:24-29:58: @10.Call: _31 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb11, unwind: bb55] 29:19-29:59: @11[0]: _30 = std::option::Option::<std::string::String>::Some(move _31) 33:9-40:6: @14[3]: _33 = &_5 -31:9-31:10: @14[6]: FakeRead(ForLet, _32) +31:9-31:10: @14[6]: FakeRead(ForLet(None), _32) 42:9-42:32: @14[13]: _136 = const main::promoted[3] 42:9-42:32: @14[14]: _39 = &(*_136) 42:9-42:32: @14[15]: _38 = &(*_39) @@ -1351,7 +1351,7 @@ 44:9-49:10: @14.Call: _47 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:33:9: 40:6]>(move _48, move _49) -> [return: bb15, unwind: bb51] 44:9-49:10: @15[2]: _46 = &_47 41:5-50:7: @15[3]: _45 = (move _46,) -41:5-50:7: @15[5]: FakeRead(ForMatchedPlace, _45) +41:5-50:7: @15[5]: FakeRead(ForMatchedPlace(None), _45) 41:5-50:7: @15[7]: _50 = (_45.0: &std::string::String) 41:5-50:7: @15[10]: _52 = &(*_50) 41:5-50:7: @15[12]: _53 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1372,7 +1372,7 @@ 56:9-68:10: @21.Call: _68 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:60:13: 67:14]>(move _69, move _70) -> [return: bb22, unwind: bb48] 56:9-68:10: @22[2]: _67 = &_68 53:5-69:7: @22[3]: _66 = (move _67,) -53:5-69:7: @22[5]: FakeRead(ForMatchedPlace, _66) +53:5-69:7: @22[5]: FakeRead(ForMatchedPlace(None), _66) 53:5-69:7: @22[7]: _72 = (_66.0: &std::string::String) 53:5-69:7: @22[10]: _74 = &(*_72) 53:5-69:7: @22[12]: _75 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1389,13 +1389,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -1404,7 +1404,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1419,7 +1419,7 @@ 29:24-29:58: @10.Call: _31 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb11, unwind: bb55] 29:19-29:59: @11[0]: _30 = std::option::Option::<std::string::String>::Some(move _31) 33:9-40:6: @14[3]: _33 = &_5 -31:9-31:10: @14[6]: FakeRead(ForLet, _32) +31:9-31:10: @14[6]: FakeRead(ForLet(None), _32) 42:9-42:32: @14[13]: _136 = const main::promoted[3] 42:9-42:32: @14[14]: _39 = &(*_136) 42:9-42:32: @14[15]: _38 = &(*_39) @@ -1429,7 +1429,7 @@ 44:9-49:10: @14.Call: _47 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:33:9: 40:6]>(move _48, move _49) -> [return: bb15, unwind: bb51] 44:9-49:10: @15[2]: _46 = &_47 41:5-50:7: @15[3]: _45 = (move _46,) -41:5-50:7: @15[5]: FakeRead(ForMatchedPlace, _45) +41:5-50:7: @15[5]: FakeRead(ForMatchedPlace(None), _45) 41:5-50:7: @15[7]: _50 = (_45.0: &std::string::String) 41:5-50:7: @15[10]: _52 = &(*_50) 41:5-50:7: @15[12]: _53 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1450,7 +1450,7 @@ 56:9-68:10: @21.Call: _68 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:60:13: 67:14]>(move _69, move _70) -> [return: bb22, unwind: bb48] 56:9-68:10: @22[2]: _67 = &_68 53:5-69:7: @22[3]: _66 = (move _67,) -53:5-69:7: @22[5]: FakeRead(ForMatchedPlace, _66) +53:5-69:7: @22[5]: FakeRead(ForMatchedPlace(None), _66) 53:5-69:7: @22[7]: _72 = (_66.0: &std::string::String) 53:5-69:7: @22[10]: _74 = &(*_72) 53:5-69:7: @22[12]: _75 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1467,13 +1467,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -1482,7 +1482,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1497,7 +1497,7 @@ 29:24-29:58: @10.Call: _31 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb11, unwind: bb55] 29:19-29:59: @11[0]: _30 = std::option::Option::<std::string::String>::Some(move _31) 33:9-40:6: @14[3]: _33 = &_5 -31:9-31:10: @14[6]: FakeRead(ForLet, _32) +31:9-31:10: @14[6]: FakeRead(ForLet(None), _32) 42:9-42:32: @14[13]: _136 = const main::promoted[3] 42:9-42:32: @14[14]: _39 = &(*_136) 42:9-42:32: @14[15]: _38 = &(*_39) @@ -1507,7 +1507,7 @@ 44:9-49:10: @14.Call: _47 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:33:9: 40:6]>(move _48, move _49) -> [return: bb15, unwind: bb51] 44:9-49:10: @15[2]: _46 = &_47 41:5-50:7: @15[3]: _45 = (move _46,) -41:5-50:7: @15[5]: FakeRead(ForMatchedPlace, _45) +41:5-50:7: @15[5]: FakeRead(ForMatchedPlace(None), _45) 41:5-50:7: @15[7]: _50 = (_45.0: &std::string::String) 41:5-50:7: @15[10]: _52 = &(*_50) 41:5-50:7: @15[12]: _53 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1528,7 +1528,7 @@ 56:9-68:10: @21.Call: _68 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:60:13: 67:14]>(move _69, move _70) -> [return: bb22, unwind: bb48] 56:9-68:10: @22[2]: _67 = &_68 53:5-69:7: @22[3]: _66 = (move _67,) -53:5-69:7: @22[5]: FakeRead(ForMatchedPlace, _66) +53:5-69:7: @22[5]: FakeRead(ForMatchedPlace(None), _66) 53:5-69:7: @22[7]: _72 = (_66.0: &std::string::String) 53:5-69:7: @22[10]: _74 = &(*_72) 53:5-69:7: @22[12]: _75 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1545,13 +1545,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -1560,7 +1560,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1575,7 +1575,7 @@ 29:24-29:58: @10.Call: _31 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb11, unwind: bb55] 29:19-29:59: @11[0]: _30 = std::option::Option::<std::string::String>::Some(move _31) 33:9-40:6: @14[3]: _33 = &_5 -31:9-31:10: @14[6]: FakeRead(ForLet, _32) +31:9-31:10: @14[6]: FakeRead(ForLet(None), _32) 42:9-42:32: @14[13]: _136 = const main::promoted[3] 42:9-42:32: @14[14]: _39 = &(*_136) 42:9-42:32: @14[15]: _38 = &(*_39) @@ -1585,7 +1585,7 @@ 44:9-49:10: @14.Call: _47 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:33:9: 40:6]>(move _48, move _49) -> [return: bb15, unwind: bb51] 44:9-49:10: @15[2]: _46 = &_47 41:5-50:7: @15[3]: _45 = (move _46,) -41:5-50:7: @15[5]: FakeRead(ForMatchedPlace, _45) +41:5-50:7: @15[5]: FakeRead(ForMatchedPlace(None), _45) 41:5-50:7: @15[7]: _50 = (_45.0: &std::string::String) 41:5-50:7: @15[10]: _52 = &(*_50) 41:5-50:7: @15[12]: _53 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1606,7 +1606,7 @@ 56:9-68:10: @21.Call: _68 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:60:13: 67:14]>(move _69, move _70) -> [return: bb22, unwind: bb48] 56:9-68:10: @22[2]: _67 = &_68 53:5-69:7: @22[3]: _66 = (move _67,) -53:5-69:7: @22[5]: FakeRead(ForMatchedPlace, _66) +53:5-69:7: @22[5]: FakeRead(ForMatchedPlace(None), _66) 53:5-69:7: @22[7]: _72 = (_66.0: &std::string::String) 53:5-69:7: @22[10]: _74 = &(*_72) 53:5-69:7: @22[12]: _75 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1623,13 +1623,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -1638,7 +1638,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1653,7 +1653,7 @@ 29:24-29:58: @10.Call: _31 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb11, unwind: bb55] 29:19-29:59: @11[0]: _30 = std::option::Option::<std::string::String>::Some(move _31) 33:9-40:6: @14[3]: _33 = &_5 -31:9-31:10: @14[6]: FakeRead(ForLet, _32) +31:9-31:10: @14[6]: FakeRead(ForLet(None), _32) 42:9-42:32: @14[13]: _136 = const main::promoted[3] 42:9-42:32: @14[14]: _39 = &(*_136) 42:9-42:32: @14[15]: _38 = &(*_39) @@ -1663,7 +1663,7 @@ 44:9-49:10: @14.Call: _47 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:33:9: 40:6]>(move _48, move _49) -> [return: bb15, unwind: bb51] 44:9-49:10: @15[2]: _46 = &_47 41:5-50:7: @15[3]: _45 = (move _46,) -41:5-50:7: @15[5]: FakeRead(ForMatchedPlace, _45) +41:5-50:7: @15[5]: FakeRead(ForMatchedPlace(None), _45) 41:5-50:7: @15[7]: _50 = (_45.0: &std::string::String) 41:5-50:7: @15[10]: _52 = &(*_50) 41:5-50:7: @15[12]: _53 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1684,7 +1684,7 @@ 56:9-68:10: @21.Call: _68 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:60:13: 67:14]>(move _69, move _70) -> [return: bb22, unwind: bb48] 56:9-68:10: @22[2]: _67 = &_68 53:5-69:7: @22[3]: _66 = (move _67,) -53:5-69:7: @22[5]: FakeRead(ForMatchedPlace, _66) +53:5-69:7: @22[5]: FakeRead(ForMatchedPlace(None), _66) 53:5-69:7: @22[7]: _72 = (_66.0: &std::string::String) 53:5-69:7: @22[10]: _74 = &(*_72) 53:5-69:7: @22[12]: _75 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1701,13 +1701,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -1716,7 +1716,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1731,7 +1731,7 @@ 29:24-29:58: @10.Call: _31 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb11, unwind: bb55] 29:19-29:59: @11[0]: _30 = std::option::Option::<std::string::String>::Some(move _31) 33:9-40:6: @14[3]: _33 = &_5 -31:9-31:10: @14[6]: FakeRead(ForLet, _32) +31:9-31:10: @14[6]: FakeRead(ForLet(None), _32) 42:9-42:32: @14[13]: _136 = const main::promoted[3] 42:9-42:32: @14[14]: _39 = &(*_136) 42:9-42:32: @14[15]: _38 = &(*_39) @@ -1741,7 +1741,7 @@ 44:9-49:10: @14.Call: _47 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:33:9: 40:6]>(move _48, move _49) -> [return: bb15, unwind: bb51] 44:9-49:10: @15[2]: _46 = &_47 41:5-50:7: @15[3]: _45 = (move _46,) -41:5-50:7: @15[5]: FakeRead(ForMatchedPlace, _45) +41:5-50:7: @15[5]: FakeRead(ForMatchedPlace(None), _45) 41:5-50:7: @15[7]: _50 = (_45.0: &std::string::String) 41:5-50:7: @15[10]: _52 = &(*_50) 41:5-50:7: @15[12]: _53 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1762,7 +1762,7 @@ 56:9-68:10: @21.Call: _68 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:60:13: 67:14]>(move _69, move _70) -> [return: bb22, unwind: bb48] 56:9-68:10: @22[2]: _67 = &_68 53:5-69:7: @22[3]: _66 = (move _67,) -53:5-69:7: @22[5]: FakeRead(ForMatchedPlace, _66) +53:5-69:7: @22[5]: FakeRead(ForMatchedPlace(None), _66) 53:5-69:7: @22[7]: _72 = (_66.0: &std::string::String) 53:5-69:7: @22[10]: _74 = &(*_72) 53:5-69:7: @22[12]: _75 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1779,13 +1779,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -1794,7 +1794,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1809,7 +1809,7 @@ 29:24-29:58: @10.Call: _31 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb11, unwind: bb55] 29:19-29:59: @11[0]: _30 = std::option::Option::<std::string::String>::Some(move _31) 33:9-40:6: @14[3]: _33 = &_5 -31:9-31:10: @14[6]: FakeRead(ForLet, _32) +31:9-31:10: @14[6]: FakeRead(ForLet(None), _32) 42:9-42:32: @14[13]: _136 = const main::promoted[3] 42:9-42:32: @14[14]: _39 = &(*_136) 42:9-42:32: @14[15]: _38 = &(*_39) @@ -1819,7 +1819,7 @@ 44:9-49:10: @14.Call: _47 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:33:9: 40:6]>(move _48, move _49) -> [return: bb15, unwind: bb51] 44:9-49:10: @15[2]: _46 = &_47 41:5-50:7: @15[3]: _45 = (move _46,) -41:5-50:7: @15[5]: FakeRead(ForMatchedPlace, _45) +41:5-50:7: @15[5]: FakeRead(ForMatchedPlace(None), _45) 41:5-50:7: @15[7]: _50 = (_45.0: &std::string::String) 41:5-50:7: @15[10]: _52 = &(*_50) 41:5-50:7: @15[12]: _53 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1840,7 +1840,7 @@ 56:9-68:10: @21.Call: _68 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:60:13: 67:14]>(move _69, move _70) -> [return: bb22, unwind: bb48] 56:9-68:10: @22[2]: _67 = &_68 53:5-69:7: @22[3]: _66 = (move _67,) -53:5-69:7: @22[5]: FakeRead(ForMatchedPlace, _66) +53:5-69:7: @22[5]: FakeRead(ForMatchedPlace(None), _66) 53:5-69:7: @22[7]: _72 = (_66.0: &std::string::String) 53:5-69:7: @22[10]: _74 = &(*_72) 53:5-69:7: @22[12]: _75 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1857,13 +1857,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -1872,7 +1872,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1887,7 +1887,7 @@ 29:24-29:58: @10.Call: _31 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb11, unwind: bb55] 29:19-29:59: @11[0]: _30 = std::option::Option::<std::string::String>::Some(move _31) 33:9-40:6: @14[3]: _33 = &_5 -31:9-31:10: @14[6]: FakeRead(ForLet, _32) +31:9-31:10: @14[6]: FakeRead(ForLet(None), _32) 42:9-42:32: @14[13]: _136 = const main::promoted[3] 42:9-42:32: @14[14]: _39 = &(*_136) 42:9-42:32: @14[15]: _38 = &(*_39) @@ -1897,7 +1897,7 @@ 44:9-49:10: @14.Call: _47 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:33:9: 40:6]>(move _48, move _49) -> [return: bb15, unwind: bb51] 44:9-49:10: @15[2]: _46 = &_47 41:5-50:7: @15[3]: _45 = (move _46,) -41:5-50:7: @15[5]: FakeRead(ForMatchedPlace, _45) +41:5-50:7: @15[5]: FakeRead(ForMatchedPlace(None), _45) 41:5-50:7: @15[7]: _50 = (_45.0: &std::string::String) 41:5-50:7: @15[10]: _52 = &(*_50) 41:5-50:7: @15[12]: _53 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1918,7 +1918,7 @@ 56:9-68:10: @21.Call: _68 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:60:13: 67:14]>(move _69, move _70) -> [return: bb22, unwind: bb48] 56:9-68:10: @22[2]: _67 = &_68 53:5-69:7: @22[3]: _66 = (move _67,) -53:5-69:7: @22[5]: FakeRead(ForMatchedPlace, _66) +53:5-69:7: @22[5]: FakeRead(ForMatchedPlace(None), _66) 53:5-69:7: @22[7]: _72 = (_66.0: &std::string::String) 53:5-69:7: @22[10]: _74 = &(*_72) 53:5-69:7: @22[12]: _75 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1935,13 +1935,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -1950,7 +1950,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1965,7 +1965,7 @@ 29:24-29:58: @10.Call: _31 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb11, unwind: bb55] 29:19-29:59: @11[0]: _30 = std::option::Option::<std::string::String>::Some(move _31) 33:9-40:6: @14[3]: _33 = &_5 -31:9-31:10: @14[6]: FakeRead(ForLet, _32) +31:9-31:10: @14[6]: FakeRead(ForLet(None), _32) 42:9-42:32: @14[13]: _136 = const main::promoted[3] 42:9-42:32: @14[14]: _39 = &(*_136) 42:9-42:32: @14[15]: _38 = &(*_39) @@ -1975,7 +1975,7 @@ 44:9-49:10: @14.Call: _47 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:33:9: 40:6]>(move _48, move _49) -> [return: bb15, unwind: bb51] 44:9-49:10: @15[2]: _46 = &_47 41:5-50:7: @15[3]: _45 = (move _46,) -41:5-50:7: @15[5]: FakeRead(ForMatchedPlace, _45) +41:5-50:7: @15[5]: FakeRead(ForMatchedPlace(None), _45) 41:5-50:7: @15[7]: _50 = (_45.0: &std::string::String) 41:5-50:7: @15[10]: _52 = &(*_50) 41:5-50:7: @15[12]: _53 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -1996,7 +1996,7 @@ 56:9-68:10: @21.Call: _68 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:60:13: 67:14]>(move _69, move _70) -> [return: bb22, unwind: bb48] 56:9-68:10: @22[2]: _67 = &_68 53:5-69:7: @22[3]: _66 = (move _67,) -53:5-69:7: @22[5]: FakeRead(ForMatchedPlace, _66) +53:5-69:7: @22[5]: FakeRead(ForMatchedPlace(None), _66) 53:5-69:7: @22[7]: _72 = (_66.0: &std::string::String) 53:5-69:7: @22[10]: _74 = &(*_72) 53:5-69:7: @22[12]: _75 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -2013,13 +2013,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -2028,7 +2028,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -2043,7 +2043,7 @@ 29:24-29:58: @10.Call: _31 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb11, unwind: bb55] 29:19-29:59: @11[0]: _30 = std::option::Option::<std::string::String>::Some(move _31) 33:9-40:6: @14[3]: _33 = &_5 -31:9-31:10: @14[6]: FakeRead(ForLet, _32) +31:9-31:10: @14[6]: FakeRead(ForLet(None), _32) 42:9-42:32: @14[13]: _136 = const main::promoted[3] 42:9-42:32: @14[14]: _39 = &(*_136) 42:9-42:32: @14[15]: _38 = &(*_39) @@ -2053,7 +2053,7 @@ 44:9-49:10: @14.Call: _47 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:33:9: 40:6]>(move _48, move _49) -> [return: bb15, unwind: bb51] 44:9-49:10: @15[2]: _46 = &_47 41:5-50:7: @15[3]: _45 = (move _46,) -41:5-50:7: @15[5]: FakeRead(ForMatchedPlace, _45) +41:5-50:7: @15[5]: FakeRead(ForMatchedPlace(None), _45) 41:5-50:7: @15[7]: _50 = (_45.0: &std::string::String) 41:5-50:7: @15[10]: _52 = &(*_50) 41:5-50:7: @15[12]: _53 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -2074,7 +2074,7 @@ 56:9-68:10: @21.Call: _68 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:60:13: 67:14]>(move _69, move _70) -> [return: bb22, unwind: bb48] 56:9-68:10: @22[2]: _67 = &_68 53:5-69:7: @22[3]: _66 = (move _67,) -53:5-69:7: @22[5]: FakeRead(ForMatchedPlace, _66) +53:5-69:7: @22[5]: FakeRead(ForMatchedPlace(None), _66) 53:5-69:7: @22[7]: _72 = (_66.0: &std::string::String) 53:5-69:7: @22[10]: _74 = &(*_72) 53:5-69:7: @22[12]: _75 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -2091,13 +2091,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -2106,7 +2106,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -2121,7 +2121,7 @@ 29:24-29:58: @10.Call: _31 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb11, unwind: bb55] 29:19-29:59: @11[0]: _30 = std::option::Option::<std::string::String>::Some(move _31) 33:9-40:6: @14[3]: _33 = &_5 -31:9-31:10: @14[6]: FakeRead(ForLet, _32) +31:9-31:10: @14[6]: FakeRead(ForLet(None), _32) 42:9-42:32: @14[13]: _136 = const main::promoted[3] 42:9-42:32: @14[14]: _39 = &(*_136) 42:9-42:32: @14[15]: _38 = &(*_39) @@ -2131,7 +2131,7 @@ 44:9-49:10: @14.Call: _47 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:33:9: 40:6]>(move _48, move _49) -> [return: bb15, unwind: bb51] 44:9-49:10: @15[2]: _46 = &_47 41:5-50:7: @15[3]: _45 = (move _46,) -41:5-50:7: @15[5]: FakeRead(ForMatchedPlace, _45) +41:5-50:7: @15[5]: FakeRead(ForMatchedPlace(None), _45) 41:5-50:7: @15[7]: _50 = (_45.0: &std::string::String) 41:5-50:7: @15[10]: _52 = &(*_50) 41:5-50:7: @15[12]: _53 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -2152,7 +2152,7 @@ 56:9-68:10: @21.Call: _68 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:60:13: 67:14]>(move _69, move _70) -> [return: bb22, unwind: bb48] 56:9-68:10: @22[2]: _67 = &_68 53:5-69:7: @22[3]: _66 = (move _67,) -53:5-69:7: @22[5]: FakeRead(ForMatchedPlace, _66) +53:5-69:7: @22[5]: FakeRead(ForMatchedPlace(None), _66) 53:5-69:7: @22[7]: _72 = (_66.0: &std::string::String) 53:5-69:7: @22[10]: _74 = &(*_72) 53:5-69:7: @22[12]: _75 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -2169,13 +2169,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -2184,7 +2184,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -2199,7 +2199,7 @@ 29:24-29:58: @10.Call: _31 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb11, unwind: bb55] 29:19-29:59: @11[0]: _30 = std::option::Option::<std::string::String>::Some(move _31) 33:9-40:6: @14[3]: _33 = &_5 -31:9-31:10: @14[6]: FakeRead(ForLet, _32) +31:9-31:10: @14[6]: FakeRead(ForLet(None), _32) 42:9-42:32: @14[13]: _136 = const main::promoted[3] 42:9-42:32: @14[14]: _39 = &(*_136) 42:9-42:32: @14[15]: _38 = &(*_39) @@ -2209,7 +2209,7 @@ 44:9-49:10: @14.Call: _47 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:33:9: 40:6]>(move _48, move _49) -> [return: bb15, unwind: bb51] 44:9-49:10: @15[2]: _46 = &_47 41:5-50:7: @15[3]: _45 = (move _46,) -41:5-50:7: @15[5]: FakeRead(ForMatchedPlace, _45) +41:5-50:7: @15[5]: FakeRead(ForMatchedPlace(None), _45) 41:5-50:7: @15[7]: _50 = (_45.0: &std::string::String) 41:5-50:7: @15[10]: _52 = &(*_50) 41:5-50:7: @15[12]: _53 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -2230,7 +2230,7 @@ 56:9-68:10: @21.Call: _68 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:60:13: 67:14]>(move _69, move _70) -> [return: bb22, unwind: bb48] 56:9-68:10: @22[2]: _67 = &_68 53:5-69:7: @22[3]: _66 = (move _67,) -53:5-69:7: @22[5]: FakeRead(ForMatchedPlace, _66) +53:5-69:7: @22[5]: FakeRead(ForMatchedPlace(None), _66) 53:5-69:7: @22[7]: _72 = (_66.0: &std::string::String) 53:5-69:7: @22[10]: _74 = &(*_72) 53:5-69:7: @22[12]: _75 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -2247,13 +2247,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -2262,7 +2262,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -2277,7 +2277,7 @@ 29:24-29:58: @10.Call: _31 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb11, unwind: bb55] 29:19-29:59: @11[0]: _30 = std::option::Option::<std::string::String>::Some(move _31) 33:9-40:6: @14[3]: _33 = &_5 -31:9-31:10: @14[6]: FakeRead(ForLet, _32) +31:9-31:10: @14[6]: FakeRead(ForLet(None), _32) 42:9-42:32: @14[13]: _136 = const main::promoted[3] 42:9-42:32: @14[14]: _39 = &(*_136) 42:9-42:32: @14[15]: _38 = &(*_39) @@ -2287,7 +2287,7 @@ 44:9-49:10: @14.Call: _47 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:33:9: 40:6]>(move _48, move _49) -> [return: bb15, unwind: bb51] 44:9-49:10: @15[2]: _46 = &_47 41:5-50:7: @15[3]: _45 = (move _46,) -41:5-50:7: @15[5]: FakeRead(ForMatchedPlace, _45) +41:5-50:7: @15[5]: FakeRead(ForMatchedPlace(None), _45) 41:5-50:7: @15[7]: _50 = (_45.0: &std::string::String) 41:5-50:7: @15[10]: _52 = &(*_50) 41:5-50:7: @15[12]: _53 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -2308,7 +2308,7 @@ 56:9-68:10: @21.Call: _68 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:60:13: 67:14]>(move _69, move _70) -> [return: bb22, unwind: bb48] 56:9-68:10: @22[2]: _67 = &_68 53:5-69:7: @22[3]: _66 = (move _67,) -53:5-69:7: @22[5]: FakeRead(ForMatchedPlace, _66) +53:5-69:7: @22[5]: FakeRead(ForMatchedPlace(None), _66) 53:5-69:7: @22[7]: _72 = (_66.0: &std::string::String) 53:5-69:7: @22[10]: _74 = &(*_72) 53:5-69:7: @22[12]: _75 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -2325,13 +2325,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -2340,7 +2340,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -2355,7 +2355,7 @@ 29:24-29:58: @10.Call: _31 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb11, unwind: bb55] 29:19-29:59: @11[0]: _30 = std::option::Option::<std::string::String>::Some(move _31) 33:9-40:6: @14[3]: _33 = &_5 -31:9-31:10: @14[6]: FakeRead(ForLet, _32) +31:9-31:10: @14[6]: FakeRead(ForLet(None), _32) 42:9-42:32: @14[13]: _136 = const main::promoted[3] 42:9-42:32: @14[14]: _39 = &(*_136) 42:9-42:32: @14[15]: _38 = &(*_39) @@ -2365,7 +2365,7 @@ 44:9-49:10: @14.Call: _47 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:33:9: 40:6]>(move _48, move _49) -> [return: bb15, unwind: bb51] 44:9-49:10: @15[2]: _46 = &_47 41:5-50:7: @15[3]: _45 = (move _46,) -41:5-50:7: @15[5]: FakeRead(ForMatchedPlace, _45) +41:5-50:7: @15[5]: FakeRead(ForMatchedPlace(None), _45) 41:5-50:7: @15[7]: _50 = (_45.0: &std::string::String) 41:5-50:7: @15[10]: _52 = &(*_50) 41:5-50:7: @15[12]: _53 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -2386,7 +2386,7 @@ 56:9-68:10: @21.Call: _68 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:60:13: 67:14]>(move _69, move _70) -> [return: bb22, unwind: bb48] 56:9-68:10: @22[2]: _67 = &_68 53:5-69:7: @22[3]: _66 = (move _67,) -53:5-69:7: @22[5]: FakeRead(ForMatchedPlace, _66) +53:5-69:7: @22[5]: FakeRead(ForMatchedPlace(None), _66) 53:5-69:7: @22[7]: _72 = (_66.0: &std::string::String) 53:5-69:7: @22[10]: _74 = &(*_72) 53:5-69:7: @22[12]: _75 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -2403,13 +2403,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -2418,7 +2418,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -2433,7 +2433,7 @@ 29:24-29:58: @10.Call: _31 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb11, unwind: bb55] 29:19-29:59: @11[0]: _30 = std::option::Option::<std::string::String>::Some(move _31) 33:9-40:6: @14[3]: _33 = &_5 -31:9-31:10: @14[6]: FakeRead(ForLet, _32) +31:9-31:10: @14[6]: FakeRead(ForLet(None), _32) 42:9-42:32: @14[13]: _136 = const main::promoted[3] 42:9-42:32: @14[14]: _39 = &(*_136) 42:9-42:32: @14[15]: _38 = &(*_39) @@ -2443,7 +2443,7 @@ 44:9-49:10: @14.Call: _47 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:33:9: 40:6]>(move _48, move _49) -> [return: bb15, unwind: bb51] 44:9-49:10: @15[2]: _46 = &_47 41:5-50:7: @15[3]: _45 = (move _46,) -41:5-50:7: @15[5]: FakeRead(ForMatchedPlace, _45) +41:5-50:7: @15[5]: FakeRead(ForMatchedPlace(None), _45) 41:5-50:7: @15[7]: _50 = (_45.0: &std::string::String) 41:5-50:7: @15[10]: _52 = &(*_50) 41:5-50:7: @15[12]: _53 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -2464,7 +2464,7 @@ 56:9-68:10: @21.Call: _68 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:60:13: 67:14]>(move _69, move _70) -> [return: bb22, unwind: bb48] 56:9-68:10: @22[2]: _67 = &_68 53:5-69:7: @22[3]: _66 = (move _67,) -53:5-69:7: @22[5]: FakeRead(ForMatchedPlace, _66) +53:5-69:7: @22[5]: FakeRead(ForMatchedPlace(None), _66) 53:5-69:7: @22[7]: _72 = (_66.0: &std::string::String) 53:5-69:7: @22[10]: _74 = &(*_72) 53:5-69:7: @22[12]: _75 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -2481,13 +2481,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -2496,7 +2496,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -2511,7 +2511,7 @@ 29:24-29:58: @10.Call: _31 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb11, unwind: bb55] 29:19-29:59: @11[0]: _30 = std::option::Option::<std::string::String>::Some(move _31) 33:9-40:6: @14[3]: _33 = &_5 -31:9-31:10: @14[6]: FakeRead(ForLet, _32) +31:9-31:10: @14[6]: FakeRead(ForLet(None), _32) 42:9-42:32: @14[13]: _136 = const main::promoted[3] 42:9-42:32: @14[14]: _39 = &(*_136) 42:9-42:32: @14[15]: _38 = &(*_39) @@ -2521,7 +2521,7 @@ 44:9-49:10: @14.Call: _47 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:33:9: 40:6]>(move _48, move _49) -> [return: bb15, unwind: bb51] 44:9-49:10: @15[2]: _46 = &_47 41:5-50:7: @15[3]: _45 = (move _46,) -41:5-50:7: @15[5]: FakeRead(ForMatchedPlace, _45) +41:5-50:7: @15[5]: FakeRead(ForMatchedPlace(None), _45) 41:5-50:7: @15[7]: _50 = (_45.0: &std::string::String) 41:5-50:7: @15[10]: _52 = &(*_50) 41:5-50:7: @15[12]: _53 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -2542,7 +2542,7 @@ 56:9-68:10: @21.Call: _68 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:60:13: 67:14]>(move _69, move _70) -> [return: bb22, unwind: bb48] 56:9-68:10: @22[2]: _67 = &_68 53:5-69:7: @22[3]: _66 = (move _67,) -53:5-69:7: @22[5]: FakeRead(ForMatchedPlace, _66) +53:5-69:7: @22[5]: FakeRead(ForMatchedPlace(None), _66) 53:5-69:7: @22[7]: _72 = (_66.0: &std::string::String) 53:5-69:7: @22[10]: _74 = &(*_72) 53:5-69:7: @22[12]: _75 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -2565,13 +2565,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -2580,7 +2580,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -2595,7 +2595,7 @@ 29:24-29:58: @10.Call: _31 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb11, unwind: bb55] 29:19-29:59: @11[0]: _30 = std::option::Option::<std::string::String>::Some(move _31) 33:9-40:6: @14[3]: _33 = &_5 -31:9-31:10: @14[6]: FakeRead(ForLet, _32) +31:9-31:10: @14[6]: FakeRead(ForLet(None), _32) 42:9-42:32: @14[13]: _136 = const main::promoted[3] 42:9-42:32: @14[14]: _39 = &(*_136) 42:9-42:32: @14[15]: _38 = &(*_39) @@ -2605,7 +2605,7 @@ 44:9-49:10: @14.Call: _47 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:33:9: 40:6]>(move _48, move _49) -> [return: bb15, unwind: bb51] 44:9-49:10: @15[2]: _46 = &_47 41:5-50:7: @15[3]: _45 = (move _46,) -41:5-50:7: @15[5]: FakeRead(ForMatchedPlace, _45) +41:5-50:7: @15[5]: FakeRead(ForMatchedPlace(None), _45) 41:5-50:7: @15[7]: _50 = (_45.0: &std::string::String) 41:5-50:7: @15[10]: _52 = &(*_50) 41:5-50:7: @15[12]: _53 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -2626,7 +2626,7 @@ 56:9-68:10: @21.Call: _68 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:60:13: 67:14]>(move _69, move _70) -> [return: bb22, unwind: bb48] 56:9-68:10: @22[2]: _67 = &_68 53:5-69:7: @22[3]: _66 = (move _67,) -53:5-69:7: @22[5]: FakeRead(ForMatchedPlace, _66) +53:5-69:7: @22[5]: FakeRead(ForMatchedPlace(None), _66) 53:5-69:7: @22[7]: _72 = (_66.0: &std::string::String) 53:5-69:7: @22[10]: _74 = &(*_72) 53:5-69:7: @22[12]: _75 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -2640,19 +2640,19 @@ 53:5-69:7: @26[6]: _55 = const () 71:19-71:23: @26[9]: _76 = std::option::Option::<std::string::String>::None 75:9-82:6: @28[3]: _78 = &_5 -73:9-73:10: @28[6]: FakeRead(ForLet, _77) +73:9-73:10: @28[6]: FakeRead(ForLet(None), _77) 3:11-155:2: @41[38]: _0 = const ()">@0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42⦊ ) ); some_string = None; let a = ⦉@0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42|| { let mut countdown = 0; @@ -3300,13 +3300,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -3315,7 +3315,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -3330,7 +3330,7 @@ 29:24-29:58: @10.Call: _31 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb11, unwind: bb55] 29:19-29:59: @11[0]: _30 = std::option::Option::<std::string::String>::Some(move _31) 33:9-40:6: @14[3]: _33 = &_5 -31:9-31:10: @14[6]: FakeRead(ForLet, _32) +31:9-31:10: @14[6]: FakeRead(ForLet(None), _32) 42:9-42:32: @14[13]: _136 = const main::promoted[3] 42:9-42:32: @14[14]: _39 = &(*_136) 42:9-42:32: @14[15]: _38 = &(*_39) @@ -3340,7 +3340,7 @@ 44:9-49:10: @14.Call: _47 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:33:9: 40:6]>(move _48, move _49) -> [return: bb15, unwind: bb51] 44:9-49:10: @15[2]: _46 = &_47 41:5-50:7: @15[3]: _45 = (move _46,) -41:5-50:7: @15[5]: FakeRead(ForMatchedPlace, _45) +41:5-50:7: @15[5]: FakeRead(ForMatchedPlace(None), _45) 41:5-50:7: @15[7]: _50 = (_45.0: &std::string::String) 41:5-50:7: @15[10]: _52 = &(*_50) 41:5-50:7: @15[12]: _53 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -3361,7 +3361,7 @@ 56:9-68:10: @21.Call: _68 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:60:13: 67:14]>(move _69, move _70) -> [return: bb22, unwind: bb48] 56:9-68:10: @22[2]: _67 = &_68 53:5-69:7: @22[3]: _66 = (move _67,) -53:5-69:7: @22[5]: FakeRead(ForMatchedPlace, _66) +53:5-69:7: @22[5]: FakeRead(ForMatchedPlace(None), _66) 53:5-69:7: @22[7]: _72 = (_66.0: &std::string::String) 53:5-69:7: @22[10]: _74 = &(*_72) 53:5-69:7: @22[12]: _75 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -3375,7 +3375,7 @@ 53:5-69:7: @26[6]: _55 = const () 71:19-71:23: @26[9]: _76 = std::option::Option::<std::string::String>::None 75:9-82:6: @28[3]: _78 = &_5 -73:9-73:10: @28[6]: FakeRead(ForLet, _77) +73:9-73:10: @28[6]: FakeRead(ForLet(None), _77) 84:9-84:32: @28[13]: _134 = const main::promoted[1] 84:9-84:32: @28[14]: _84 = &(*_134) 84:9-84:32: @28[15]: _83 = &(*_84) @@ -3385,7 +3385,7 @@ 86:9-91:10: @28.Call: _92 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:75:9: 82:6]>(move _93, move _94) -> [return: bb29, unwind: bb45] 86:9-91:10: @29[2]: _91 = &_92 83:5-92:7: @29[3]: _90 = (move _91,) -83:5-92:7: @29[5]: FakeRead(ForMatchedPlace, _90) +83:5-92:7: @29[5]: FakeRead(ForMatchedPlace(None), _90) 83:5-92:7: @29[7]: _95 = (_90.0: &std::string::String) 83:5-92:7: @29[10]: _97 = &(*_95) 83:5-92:7: @29[12]: _98 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -3398,19 +3398,19 @@ 83:5-92:7: @31.Call: _80 = std::io::_print(move _81) -> [return: bb32, unwind: bb44] 83:5-92:7: @33[6]: _79 = const () 97:9-104:6: @33[10]: _100 = &_5 -95:9-95:22: @33[13]: FakeRead(ForLet, _99) +95:9-95:22: @33[13]: FakeRead(ForLet(None), _99) 3:11-155:2: @41[38]: _0 = const ()">@0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42⦊; println!( "The string or alt: {}" , some_string . unwrap_or_else ( a ) ); let quote_closure = ⦉@0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42|val| { let mut countdown = 0; @@ -4970,13 +4970,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -4985,7 +4985,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -5000,7 +5000,7 @@ 29:24-29:58: @10.Call: _31 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb11, unwind: bb55] 29:19-29:59: @11[0]: _30 = std::option::Option::<std::string::String>::Some(move _31) 33:9-40:6: @14[3]: _33 = &_5 -31:9-31:10: @14[6]: FakeRead(ForLet, _32) +31:9-31:10: @14[6]: FakeRead(ForLet(None), _32) 42:9-42:32: @14[13]: _136 = const main::promoted[3] 42:9-42:32: @14[14]: _39 = &(*_136) 42:9-42:32: @14[15]: _38 = &(*_39) @@ -5010,7 +5010,7 @@ 44:9-49:10: @14.Call: _47 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:33:9: 40:6]>(move _48, move _49) -> [return: bb15, unwind: bb51] 44:9-49:10: @15[2]: _46 = &_47 41:5-50:7: @15[3]: _45 = (move _46,) -41:5-50:7: @15[5]: FakeRead(ForMatchedPlace, _45) +41:5-50:7: @15[5]: FakeRead(ForMatchedPlace(None), _45) 41:5-50:7: @15[7]: _50 = (_45.0: &std::string::String) 41:5-50:7: @15[10]: _52 = &(*_50) 41:5-50:7: @15[12]: _53 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -5031,7 +5031,7 @@ 56:9-68:10: @21.Call: _68 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:60:13: 67:14]>(move _69, move _70) -> [return: bb22, unwind: bb48] 56:9-68:10: @22[2]: _67 = &_68 53:5-69:7: @22[3]: _66 = (move _67,) -53:5-69:7: @22[5]: FakeRead(ForMatchedPlace, _66) +53:5-69:7: @22[5]: FakeRead(ForMatchedPlace(None), _66) 53:5-69:7: @22[7]: _72 = (_66.0: &std::string::String) 53:5-69:7: @22[10]: _74 = &(*_72) 53:5-69:7: @22[12]: _75 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -5045,7 +5045,7 @@ 53:5-69:7: @26[6]: _55 = const () 71:19-71:23: @26[9]: _76 = std::option::Option::<std::string::String>::None 75:9-82:6: @28[3]: _78 = &_5 -73:9-73:10: @28[6]: FakeRead(ForLet, _77) +73:9-73:10: @28[6]: FakeRead(ForLet(None), _77) 84:9-84:32: @28[13]: _134 = const main::promoted[1] 84:9-84:32: @28[14]: _84 = &(*_134) 84:9-84:32: @28[15]: _83 = &(*_84) @@ -5055,7 +5055,7 @@ 86:9-91:10: @28.Call: _92 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:75:9: 82:6]>(move _93, move _94) -> [return: bb29, unwind: bb45] 86:9-91:10: @29[2]: _91 = &_92 83:5-92:7: @29[3]: _90 = (move _91,) -83:5-92:7: @29[5]: FakeRead(ForMatchedPlace, _90) +83:5-92:7: @29[5]: FakeRead(ForMatchedPlace(None), _90) 83:5-92:7: @29[7]: _95 = (_90.0: &std::string::String) 83:5-92:7: @29[10]: _97 = &(*_95) 83:5-92:7: @29[12]: _98 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -5068,7 +5068,7 @@ 83:5-92:7: @31.Call: _80 = std::io::_print(move _81) -> [return: bb32, unwind: bb44] 83:5-92:7: @33[6]: _79 = const () 97:9-104:6: @33[10]: _100 = &_5 -95:9-95:22: @33[13]: FakeRead(ForLet, _99) +95:9-95:22: @33[13]: FakeRead(ForLet(None), _99) 106:9-106:40: @33[20]: _133 = const main::promoted[0] 106:9-106:40: @33[21]: _106 = &(*_133) 106:9-106:40: @33[22]: _105 = &(*_106) @@ -5080,7 +5080,7 @@ 108:9-114:33: @36.Call: _114 = <std::iter::Map<std::iter::Take<std::iter::Repeat<&str>>, [closure@../coverage/closure.rs:97:9: 104:6]> as std::iter::Iterator>::collect::<std::vec::Vec<std::string::String>>(move _115) -> [return: bb37, unwind: bb55] 108:9-114:33: @37[1]: _113 = &_114 105:5-115:7: @37[2]: _112 = (move _113,) -105:5-115:7: @37[4]: FakeRead(ForMatchedPlace, _112) +105:5-115:7: @37[4]: FakeRead(ForMatchedPlace(None), _112) 105:5-115:7: @37[6]: _119 = (_112.0: &std::vec::Vec<std::string::String>) 105:5-115:7: @37[9]: _121 = &(*_119) 105:5-115:7: @37[11]: _122 = <std::vec::Vec<std::string::String> as std::fmt::Debug>::fmt as for<'r, 's, 't0> fn(&'r std::vec::Vec<std::string::String>, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -5092,19 +5092,19 @@ 105:5-115:7: @38.Call: _103 = std::fmt::Arguments::new_v1(move _104, move _108) -> [return: bb39, unwind: bb43] 105:5-115:7: @39.Call: _102 = std::io::_print(move _103) -> [return: bb40, unwind: bb43] 105:5-115:7: @41[6]: _101 = const () -118:9-118:24: @41[13]: FakeRead(ForLet, _123) +118:9-118:24: @41[13]: FakeRead(ForLet(None), _123) 3:11-155:2: @41[38]: _0 = const ()">@0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42⦊; println!( "Repeated, quoted string: {:?}" , std::iter::repeat("repeat me") .take(5) .map ( quote_closure ) .collect::<Vec<_>>() ); let _unused_closure = ⦉@0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42| mut countdown | @@ -7153,13 +7153,13 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb56] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 8:22-8:29: @3[3]: _6 = _1 8:20-8:29: @3[4]: _5 = Not(move _6) -8:9-8:17: @3[6]: FakeRead(ForLet, _5) +8:9-8:17: @3[6]: FakeRead(ForLet(None), _5) 10:32-10:66: @3.Call: _8 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb4, unwind: bb57] 10:27-10:67: @4[0]: _7 = std::option::Option::<std::string::String>::Some(move _8) -10:9-10:24: @5[1]: FakeRead(ForLet, _7) +10:9-10:24: @5[1]: FakeRead(ForLet(None), _7) 12:9-12:32: @5[8]: _137 = const main::promoted[4] 12:9-12:32: @5[9]: _14 = &(*_137) 12:9-12:32: @5[10]: _13 = &(*_14) @@ -7168,7 +7168,7 @@ 14:9-26:10: @5.Call: _22 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:18:13: 25:14]>(move _23, move _24) -> [return: bb6, unwind: bb54] 14:9-26:10: @6[2]: _21 = &_22 11:5-27:7: @6[3]: _20 = (move _21,) -11:5-27:7: @6[5]: FakeRead(ForMatchedPlace, _20) +11:5-27:7: @6[5]: FakeRead(ForMatchedPlace(None), _20) 11:5-27:7: @6[7]: _26 = (_20.0: &std::string::String) 11:5-27:7: @6[10]: _28 = &(*_26) 11:5-27:7: @6[12]: _29 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -7183,7 +7183,7 @@ 29:24-29:58: @10.Call: _31 = <std::string::String as std::convert::From<&str>>::from(const "the string content") -> [return: bb11, unwind: bb55] 29:19-29:59: @11[0]: _30 = std::option::Option::<std::string::String>::Some(move _31) 33:9-40:6: @14[3]: _33 = &_5 -31:9-31:10: @14[6]: FakeRead(ForLet, _32) +31:9-31:10: @14[6]: FakeRead(ForLet(None), _32) 42:9-42:32: @14[13]: _136 = const main::promoted[3] 42:9-42:32: @14[14]: _39 = &(*_136) 42:9-42:32: @14[15]: _38 = &(*_39) @@ -7193,7 +7193,7 @@ 44:9-49:10: @14.Call: _47 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:33:9: 40:6]>(move _48, move _49) -> [return: bb15, unwind: bb51] 44:9-49:10: @15[2]: _46 = &_47 41:5-50:7: @15[3]: _45 = (move _46,) -41:5-50:7: @15[5]: FakeRead(ForMatchedPlace, _45) +41:5-50:7: @15[5]: FakeRead(ForMatchedPlace(None), _45) 41:5-50:7: @15[7]: _50 = (_45.0: &std::string::String) 41:5-50:7: @15[10]: _52 = &(*_50) 41:5-50:7: @15[12]: _53 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -7214,7 +7214,7 @@ 56:9-68:10: @21.Call: _68 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:60:13: 67:14]>(move _69, move _70) -> [return: bb22, unwind: bb48] 56:9-68:10: @22[2]: _67 = &_68 53:5-69:7: @22[3]: _66 = (move _67,) -53:5-69:7: @22[5]: FakeRead(ForMatchedPlace, _66) +53:5-69:7: @22[5]: FakeRead(ForMatchedPlace(None), _66) 53:5-69:7: @22[7]: _72 = (_66.0: &std::string::String) 53:5-69:7: @22[10]: _74 = &(*_72) 53:5-69:7: @22[12]: _75 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -7228,7 +7228,7 @@ 53:5-69:7: @26[6]: _55 = const () 71:19-71:23: @26[9]: _76 = std::option::Option::<std::string::String>::None 75:9-82:6: @28[3]: _78 = &_5 -73:9-73:10: @28[6]: FakeRead(ForLet, _77) +73:9-73:10: @28[6]: FakeRead(ForLet(None), _77) 84:9-84:32: @28[13]: _134 = const main::promoted[1] 84:9-84:32: @28[14]: _84 = &(*_134) 84:9-84:32: @28[15]: _83 = &(*_84) @@ -7238,7 +7238,7 @@ 86:9-91:10: @28.Call: _92 = std::option::Option::<std::string::String>::unwrap_or_else::<[closure@../coverage/closure.rs:75:9: 82:6]>(move _93, move _94) -> [return: bb29, unwind: bb45] 86:9-91:10: @29[2]: _91 = &_92 83:5-92:7: @29[3]: _90 = (move _91,) -83:5-92:7: @29[5]: FakeRead(ForMatchedPlace, _90) +83:5-92:7: @29[5]: FakeRead(ForMatchedPlace(None), _90) 83:5-92:7: @29[7]: _95 = (_90.0: &std::string::String) 83:5-92:7: @29[10]: _97 = &(*_95) 83:5-92:7: @29[12]: _98 = <std::string::String as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::string::String, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -7251,7 +7251,7 @@ 83:5-92:7: @31.Call: _80 = std::io::_print(move _81) -> [return: bb32, unwind: bb44] 83:5-92:7: @33[6]: _79 = const () 97:9-104:6: @33[10]: _100 = &_5 -95:9-95:22: @33[13]: FakeRead(ForLet, _99) +95:9-95:22: @33[13]: FakeRead(ForLet(None), _99) 106:9-106:40: @33[20]: _133 = const main::promoted[0] 106:9-106:40: @33[21]: _106 = &(*_133) 106:9-106:40: @33[22]: _105 = &(*_106) @@ -7263,7 +7263,7 @@ 108:9-114:33: @36.Call: _114 = <std::iter::Map<std::iter::Take<std::iter::Repeat<&str>>, [closure@../coverage/closure.rs:97:9: 104:6]> as std::iter::Iterator>::collect::<std::vec::Vec<std::string::String>>(move _115) -> [return: bb37, unwind: bb55] 108:9-114:33: @37[1]: _113 = &_114 105:5-115:7: @37[2]: _112 = (move _113,) -105:5-115:7: @37[4]: FakeRead(ForMatchedPlace, _112) +105:5-115:7: @37[4]: FakeRead(ForMatchedPlace(None), _112) 105:5-115:7: @37[6]: _119 = (_112.0: &std::vec::Vec<std::string::String>) 105:5-115:7: @37[9]: _121 = &(*_119) 105:5-115:7: @37[11]: _122 = <std::vec::Vec<std::string::String> as std::fmt::Debug>::fmt as for<'r, 's, 't0> fn(&'r std::vec::Vec<std::string::String>, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -7275,23 +7275,23 @@ 105:5-115:7: @38.Call: _103 = std::fmt::Arguments::new_v1(move _104, move _108) -> [return: bb39, unwind: bb43] 105:5-115:7: @39.Call: _102 = std::io::_print(move _103) -> [return: bb40, unwind: bb43] 105:5-115:7: @41[6]: _101 = const () -118:9-118:24: @41[13]: FakeRead(ForLet, _123) +118:9-118:24: @41[13]: FakeRead(ForLet(None), _123) 130:25-130:27: @41[15]: _125 = const 10_i32 -130:9-130:22: @41[16]: FakeRead(ForLet, _125) +130:9-130:22: @41[16]: FakeRead(ForLet(None), _125) 131:33-131:67: @41[19]: _127 = &mut _125 -131:9-131:30: @41[22]: FakeRead(ForLet, _126) +131:9-131:30: @41[22]: FakeRead(ForLet(None), _126) 3:11-155:2: @41[38]: _0 = const ()">@0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42⦊; let mut countdown = 10; let _short_unused_closure = ⦉@0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42| _unused_arg: u8 | countdown += 1@0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42⦊; // Macros can sometimes confuse the coverage results. Compare this next assignment, with an // unused closure that invokes the `println!()` macro, with the closure assignment above, that // does not use a macro. The closure above correctly shows `0` executions. let _short_unused_closure = ⦉@0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42| _unused_arg: u8 | println!("not called")@0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42⦊; // The closure assignment above is executed, with a line count of `1`, but the `println!()` // could not have been called, and yet, there is no indication that it wasn't... // ...but adding block braces gives the expected result, showing the block was not executed. let _short_unused_closure_block = ⦉@0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42| _unused_arg: u8 | { println!("not called") }@0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42⦊; let _shortish_unused_closure = ⦉@0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42| _unused_arg: u8 | { println!("not called") }@0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42⦊; let _as_short_unused_closure = ⦉@0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42| _unused_arg: u8 | { println!("not called") }@0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42⦊; let _almost_as_short_unused_closure = ⦉@0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42| _unused_arg: u8 | { println!("not called") }@0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42⦊ ; }⦉@0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42
diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.conditions/conditions.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.conditions/conditions.main.-------.InstrumentCoverage.0.html index 0aa6fe65686cf..b063a491be332 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.conditions/conditions.main.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.conditions/conditions.main.-------.InstrumentCoverage.0.html @@ -71,10 +71,10 @@
@0⦊fn main() ⦉@0{ let @0⦊mut countdown = 0; if true⦉@0 @1⦊{ }⦉@1@2⦊⦉@2 const B: u32 = 100; - let @21⦊x⦉@21 = if let @21⦊x⦉@21 = if @3⦊countdown > 7⦉@3 { }; let @21⦊mut countdown = 0; if true⦉@21 @22⦊{ if @42⦊true⦉@42 { let @43⦊mut countdown = 0; if true⦉@43 @45⦊{ // `true` was const-evaluated. The compiler knows the `if` block will be executed. let @66⦊mut countdown = 0; if true⦉@66 @67⦊{ }⦉@67@68⦊⦉@68 - let @89⦊z⦉@89 = if let @89⦊z⦉@89 = if @69⦊countdown > 7⦉@69 @70,72⦊{ @@ -228,13 +228,13 @@ 70:9-70:23: @86[0]: _62 = move (_80.0: i32)">@85,86⦊countdown -= 5⦉@85,86; } else { let @74,87,88⦊should_be_reachable = countdown; println!("reached"); return⦉@74,87,88; }; - let @107⦊w⦉@107 = if let @107⦊w⦉@107 = if @89⦊countdown > 7⦉@89 @90,92⦊{ diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.dead_code/dead_code.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.dead_code/dead_code.main.-------.InstrumentCoverage.0.html index be06ddd126da9..fcab07eab0075 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.dead_code/dead_code.main.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.dead_code/dead_code.main.-------.InstrumentCoverage.0.html @@ -73,65 +73,65 @@ 31:19-31:35: @1[0]: _3 = &_4 31:19-31:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb7] 31:19-31:46: @2[1]: _1 = Eq(move _2, const 1_usize) -31:9-31:16: @2[3]: FakeRead(ForLet, _1) +31:9-31:16: @2[3]: FakeRead(ForLet(None), _1) 33:25-33:26: @3[2]: _5 = const 0_i32 -33:9-33:22: @3[3]: FakeRead(ForLet, _5) +33:9-33:22: @3[3]: FakeRead(ForLet(None), _5) 34:8-34:15: @3[5]: _6 = _1">@0,1,2,3⦊fn main() { // Initialize test constants in a way that cannot be determined at compile time, to ensure // rustc and LLVM cannot optimize out statements (or coverage counters) downstream from // dependent conditions. let is_true = std::env::args().len() == 1; let mut countdown = 0; if is_true⦉@0,1,2,3 @4⦊{ @0,1,2,3⦊fn unused_fn() { // Initialize test constants in a way that cannot be determined at compile time, to ensure // rustc and LLVM cannot optimize out statements (or coverage counters) downstream from // dependent conditions. let is_true = std::env::args().len() == 1; let mut countdown = 0; if is_true⦉@0,1,2,3 @4⦊{ @0,1,2,3⦊pub fn unused_pub_fn_not_in_library() { // Initialize test constants in a way that cannot be determined at compile time, to ensure // rustc and LLVM cannot optimize out statements (or coverage counters) downstream from // dependent conditions. let is_true = std::env::args().len() == 1; let mut countdown = 0; if is_true⦉@0,1,2,3 @4⦊{ @0⦊fn main() ⦉@0{ if @0⦊true⦉@0 { @4⦊@3⦊assert_eq!(1, 1);⦉@3⦉@4 } else { @6⦊@0⦊pub fn fn_run_in_doctests(conditional: usize) ⦉@0{ - match @0⦊conditional⦉@0 { + match @0⦊conditional⦉@0 { 1 => @7⦊@6⦊assert_eq!(1, 1)⦉@6⦉@7, // this is run, 2 => @10⦊@9⦊assert_eq!(1, 1)⦉@9⦉@10, // this, 3 => @13⦊@12⦊assert_eq!(1, 1)⦉@12⦉@13, // and this too _ => @15⦊@0⦊fn main() -> Result<(),u8> { let _firecracker = Firework { strength: 1 }; let _tnt = Firework { strength: 100 }; if true⦉@0 { @0,1,2,3⦊fn main() -> Result<(),u8> { let mut firecracker = Firework { strength: 1 }; firecracker.set_strength(2); let mut tnt = Firework { strength: 100.1 }; tnt.set_strength(200.1); tnt.set_strength(300.3); @0,1,2,3⦊fn main() { // Initialize test constants in a way that cannot be determined at compile time, to ensure // rustc and LLVM cannot optimize out statements (or coverage counters) downstream from // dependent conditions. let is_true = std::env::args().len() == 1 ; let mut countdown = 0 ; if is_true⦉@0,1,2,3 @4⦊{ diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.if_else/if_else.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.if_else/if_else.main.-------.InstrumentCoverage.0.html index e0f0ac4020594..5da660c6a4677 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.if_else/if_else.main.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.if_else/if_else.main.-------.InstrumentCoverage.0.html @@ -73,73 +73,73 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb10] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 9:25-9:26: @3[2]: _5 = const 0_i32 -9:9-9:22: @3[3]: FakeRead(ForLet, _5) +9:9-9:22: @3[3]: FakeRead(ForLet(None), _5) 11:9-11:16: @3[6]: _7 = _1">@0,1,2,3⦊fn main() { // Initialize test constants in a way that cannot be determined at compile time, to ensure // rustc and LLVM cannot optimize out statements (or coverage counters) downstream from // dependent conditions. let is_true = std::env::args().len() == 1; let mut countdown = 0; if is_true⦉@0,1,2,3 @4⦊{ diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.inline/inline.display.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.inline/inline.display.-------.InstrumentCoverage.0.html index 6287516636ea9..7b61affdee37f 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.inline/inline.display.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.inline/inline.display.-------.InstrumentCoverage.0.html @@ -74,14 +74,14 @@ 42:9-42:10: @8[3]: _14 = _13 42:9-42:10: @8[4]: _7 = move _14 42:9-42:10: @8[5]: _8 = const () -42:9-42:10: @8[13]: FakeRead(ForLet, _16)">@6,8,9,10,11⦊x⦉@6,8,9,10,11 in @6,8,9,10,11⦊x⦉@6,8,9,10,11 in @0,1⦊fn permutate<T: Copy + Display>(xs: &mut [T], k: usize) { let n = length(xs); if k == n⦉@0,1 @12,14,15,16,17,18⦊i⦉@12,14,15,16,17,18 in @12,14,15,16,17,18⦊i⦉@12,14,15,16,17,18 in @5,7⦊k..n⦉@5,7 @0,1,2,3,4⦊fn permutations<T: Copy + Display>(xs: &[T]) { let mut ys = xs.to_owned(); permutate(&mut ys, 0); @0,1,2,3,4⦊fn in_func(a: u32) { let b = 1; let c = a + b; println!("c = {}", c) @0,1,2,3⦊is_true = std::env::args().len() == 1; let mut countdown = 0; if is_true⦉@0,1,2,3 @4⦊{ }⦉@7,9@8⦊⦉@8 let @10,11⦊mut val = InStruct { in_struct_field: 101, }; val.default_trait_func(); }⦉@10,11
diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.lazy_boolean/lazy_boolean.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.lazy_boolean/lazy_boolean.main.-------.InstrumentCoverage.0.html index 358e2e2bbba3c..ff84fbd4e9f17 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.lazy_boolean/lazy_boolean.main.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.lazy_boolean/lazy_boolean.main.-------.InstrumentCoverage.0.html @@ -73,7 +73,7 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb35] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 9:33-9:42: @3[2]: _8 = (const 0_i32, const 0_i32, const 0_i32) 9:10-9:15: @3[4]: _5 = (_8.0: i32) 9:17-9:22: @3[6]: _6 = (_8.1: i32) @@ -83,7 +83,7 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb35] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 9:33-9:42: @3[2]: _8 = (const 0_i32, const 0_i32, const 0_i32) 9:10-9:15: @3[4]: _5 = (_8.0: i32) 9:17-9:22: @3[6]: _6 = (_8.1: i32) @@ -93,7 +93,7 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb35] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 9:33-9:42: @3[2]: _8 = (const 0_i32, const 0_i32, const 0_i32) 9:10-9:15: @3[4]: _5 = (_8.0: i32) 9:17-9:22: @3[6]: _6 = (_8.1: i32) @@ -103,7 +103,7 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb35] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 9:33-9:42: @3[2]: _8 = (const 0_i32, const 0_i32, const 0_i32) 9:10-9:15: @3[4]: _5 = (_8.0: i32) 9:17-9:22: @3[6]: _6 = (_8.1: i32) @@ -113,7 +113,7 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb35] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 9:33-9:42: @3[2]: _8 = (const 0_i32, const 0_i32, const 0_i32) 9:10-9:15: @3[4]: _5 = (_8.0: i32) 9:17-9:22: @3[6]: _6 = (_8.1: i32) @@ -123,7 +123,7 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb35] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 9:33-9:42: @3[2]: _8 = (const 0_i32, const 0_i32, const 0_i32) 9:10-9:15: @3[4]: _5 = (_8.0: i32) 9:17-9:22: @3[6]: _6 = (_8.1: i32) @@ -133,7 +133,7 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb35] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 9:33-9:42: @3[2]: _8 = (const 0_i32, const 0_i32, const 0_i32) 9:10-9:15: @3[4]: _5 = (_8.0: i32) 9:17-9:22: @3[6]: _6 = (_8.1: i32) @@ -143,7 +143,7 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb35] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 9:33-9:42: @3[2]: _8 = (const 0_i32, const 0_i32, const 0_i32) 9:10-9:15: @3[4]: _5 = (_8.0: i32) 9:17-9:22: @3[6]: _6 = (_8.1: i32) @@ -169,7 +169,7 @@ 13:9-13:16: @4[2]: _7 = const 100_i32 10:16-14:6: @4[3]: _9 = const ()"> }⦉@4@5⦊⦉@5 let - @10⦊somebool⦉@10 + @10⦊somebool⦉@10 = @9⦊b < c⦉@9 ; let - @14⦊somebool⦉@14 + @14⦊somebool⦉@14 = @13⦊b < c⦉@13 ; - let @18⦊somebool⦉@18 = let @18⦊somebool⦉@18 = @14⦊a < b⦉@14 && @17⦊b < c⦉@17; - let @22⦊somebool⦉@22 = let @22⦊somebool⦉@22 = @18⦊b < a⦉@18 && @0,1⦊fn main() { let result = loop { break 10 ; } ; }⦉@0,1
diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.loops_branches/loops_branches.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.loops_branches/loops_branches.main.-------.InstrumentCoverage.0.html index 95e8f0b71eab8..1cf1d716b9fad 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.loops_branches/loops_branches.main.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.loops_branches/loops_branches.main.-------.InstrumentCoverage.0.html @@ -70,14 +70,14 @@
@0,1,2,3⦊fn main() { let debug_test = DebugTest; println!("{:?}", debug_test); if true⦉@0 { if @1⦊false⦉@1 { while @4,5⦊true⦉@4,5 @6,8⦊{ +12:23-12:27: @5[2]: FakeRead(ForMatchedPlace(None), _8)">@4,5⦊true⦉@4,5 @6,8⦊{ }⦉@6,8 }@3⦊⦉@3 @0,1,2,3⦊fn main() { // Initialize test constants in a way that cannot be determined at compile time, to ensure // rustc and LLVM cannot optimize out statements (or coverage counters) downstream from // dependent conditions. let is_true = std::env::args().len() == 1; let mut a: u8 = 0; let mut b: u8 = 0; if is_true⦉@0,1,2,3 match @6⦊(a, b)⦉@6 { +15:11-15:17: @6[11]: FakeRead(ForMatchedPlace(None), _10)">@6⦊(a, b)⦉@6 { // Or patterns generate MIR `SwitchInt` with multiple targets to the same `BasicBlock`. // This test confirms a fix for Issue #79569. (0 | 1, 2 | 3) => @9,10⦊{}⦉@9,10 @@ -212,7 +212,7 @@ match @14⦊(a, b)⦉@14 { +25:11-25:17: @14[11]: FakeRead(ForMatchedPlace(None), _16)">@14⦊(a, b)⦉@14 { (0 | 1, 2 | 3) => @17,18⦊{}⦉@17,18 _ => @15⦊{}⦉@15 } @@ -231,7 +231,7 @@ match @22⦊(a, b)⦉@22 { +33:11-33:17: @22[11]: FakeRead(ForMatchedPlace(None), _22)">@22⦊(a, b)⦉@22 { (0 | 1, 2 | 3) => @25,26⦊{}⦉@25,26 _ => @23⦊{}⦉@23 } @@ -250,7 +250,7 @@ match @30⦊(a, b)⦉@30 { +41:11-41:17: @30[10]: FakeRead(ForMatchedPlace(None), _27)">@30⦊(a, b)⦉@30 { (0 | 1, 2 | 3) => @33,34⦊{}⦉@33,34 _ => @31⦊{}⦉@31 } diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.nested_loops/nested_loops.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.nested_loops/nested_loops.main.-------.InstrumentCoverage.0.html index 1abc24156d9c3..cde44c15f1cc1 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.nested_loops/nested_loops.main.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.nested_loops/nested_loops.main.-------.InstrumentCoverage.0.html @@ -73,42 +73,42 @@ 2:19-2:35: @1[0]: _3 = &_4 2:19-2:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb31] 2:19-2:46: @2[1]: _1 = Eq(move _2, const 1_usize) -2:9-2:16: @2[3]: FakeRead(ForLet, _1) +2:9-2:16: @2[3]: FakeRead(ForLet(None), _1) 3:25-3:27: @3[2]: _5 = const 10_i32 -3:9-3:22: @3[3]: FakeRead(ForLet, _5)">@0,1,2,3⦊fn main() { +3:9-3:22: @3[3]: FakeRead(ForLet(None), _5)">@0,1,2,3⦊fn main() { let is_true = std::env::args().len() == 1; +3:9-3:22: @3[3]: FakeRead(ForLet(None), _5)"> let is_true = std::env::args().len() == 1; let mut countdown = 10⦉@0,1,2,3; +3:9-3:22: @3[3]: FakeRead(ForLet(None), _5)"> let mut countdown = 10⦉@0,1,2,3; 'outer: while @4,5⦊countdown > 0⦉@4,5 { +5:19-5:32: @5[5]: FakeRead(ForMatchedPlace(None), _7)">@4,5⦊countdown > 0⦉@4,5 { let @6,8,9⦊mut a = 100; +7:13-7:18: @8[5]: FakeRead(ForLet(None), _10)">@6,8,9⦊mut a = 100; let mut b = 100⦉@6,8,9; +7:13-7:18: @8[5]: FakeRead(ForLet(None), _10)"> let mut b = 100⦉@6,8,9; for @14,16⦊_⦉@14,16 in @10,11,12⦊0..50⦉@10,11,12 { +8:18-8:23: @12[1]: FakeRead(ForMatchedPlace(None), _17)">@10,11,12⦊0..50⦉@10,11,12 { if @14,16⦊a < 30⦉@14,16 { @17⦊break⦉@17; diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.overflow/overflow.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.overflow/overflow.main.-------.InstrumentCoverage.0.html index 2a9b1b10efcd2..d9b9b734daf02 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.overflow/overflow.main.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.overflow/overflow.main.-------.InstrumentCoverage.0.html @@ -70,22 +70,22 @@
@0⦊fn main() -> Result<(),u8> { +16:9-16:22: @0[2]: FakeRead(ForLet(None), _1)">@0⦊fn main() -> Result<(),u8> { let mut countdown = 10⦉@0; +16:9-16:22: @0[2]: FakeRead(ForLet(None), _1)"> let mut countdown = 10⦉@0; while @1,2⦊countdown > 0⦉@1,2 { +17:11-17:24: @2[5]: FakeRead(ForMatchedPlace(None), _4)">@1,2⦊countdown > 0⦉@1,2 { if @3,5⦊countdown == 1⦉@3,5 @6,8,9,10,11⦊{ let result = might_overflow(10); println!("Result: {}", result); }⦉@6,8,9,10,11 else if @7⦊countdown < 5⦉@7 @12,14,15,16,17⦊{ let result = might_overflow(1); println!("Result: {}", result); }⦉@1,3,4@2⦊⦉@2 let @5,6,7,8,9,10,11,12,13⦊add_to = u32::MAX - 5; println!("does {} + {} overflow?", add_to, to_add); let result = to_add + add_to; println!("continuing after overflow check"); result @0⦊fn main() -> Result<(), u8> { +14:9-14:22: @0[2]: FakeRead(ForLet(None), _1)">@0⦊fn main() -> Result<(), u8> { let mut countdown = 10⦉@0; +14:9-14:22: @0[2]: FakeRead(ForLet(None), _1)"> let mut countdown = 10⦉@0; while @1,2⦊countdown > 0⦉@1,2 { +15:11-15:24: @2[5]: FakeRead(ForMatchedPlace(None), _4)">@1,2⦊countdown > 0⦉@1,2 { if @3,5⦊countdown == 1⦉@3,5 @6,8⦊{ diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.panic_unwind/panic_unwind.might_panic.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.panic_unwind/panic_unwind.might_panic.-------.InstrumentCoverage.0.html index 32988629ba0eb..a669e0d7a854b 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.panic_unwind/panic_unwind.might_panic.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.panic_unwind/panic_unwind.might_panic.-------.InstrumentCoverage.0.html @@ -76,7 +76,7 @@ 6:18-6:32: @1[8]: _8 = &(*_9) 6:18-6:32: @1[9]: _7 = move _8 as &[&str] (Pointer(Unsize)) 6:9-6:34: @1[15]: _15 = () -6:9-6:34: @1[16]: FakeRead(ForMatchedPlace, _15) +6:9-6:34: @1[16]: FakeRead(ForMatchedPlace(None), _15) 6:9-6:34: @1[17]: _32 = const might_panic::promoted[2] 6:9-6:34: @1[18]: _13 = &(*_32) 6:9-6:34: @1[19]: _12 = &(*_13) @@ -90,7 +90,7 @@ 6:18-6:32: @1[8]: _8 = &(*_9) 6:18-6:32: @1[9]: _7 = move _8 as &[&str] (Pointer(Unsize)) 6:9-6:34: @1[15]: _15 = () -6:9-6:34: @1[16]: FakeRead(ForMatchedPlace, _15) +6:9-6:34: @1[16]: FakeRead(ForMatchedPlace(None), _15) 6:9-6:34: @1[17]: _32 = const might_panic::promoted[2] 6:9-6:34: @1[18]: _13 = &(*_32) 6:9-6:34: @1[19]: _12 = &(*_13) @@ -104,7 +104,7 @@ 9:18-9:31: @2[8]: _22 = &(*_23) 9:18-9:31: @2[9]: _21 = move _22 as &[&str] (Pointer(Unsize)) 9:9-9:33: @2[15]: _29 = () -9:9-9:33: @2[16]: FakeRead(ForMatchedPlace, _29) +9:9-9:33: @2[16]: FakeRead(ForMatchedPlace(None), _29) 9:9-9:33: @2[17]: _30 = const might_panic::promoted[0] 9:9-9:33: @2[18]: _27 = &(*_30) 9:9-9:33: @2[19]: _26 = &(*_27) @@ -119,7 +119,7 @@ 9:18-9:31: @2[8]: _22 = &(*_23) 9:18-9:31: @2[9]: _21 = move _22 as &[&str] (Pointer(Unsize)) 9:9-9:33: @2[15]: _29 = () -9:9-9:33: @2[16]: FakeRead(ForMatchedPlace, _29) +9:9-9:33: @2[16]: FakeRead(ForMatchedPlace(None), _29) 9:9-9:33: @2[17]: _30 = const might_panic::promoted[0] 9:9-9:33: @2[18]: _27 = &(*_30) 9:9-9:33: @2[19]: _26 = &(*_27) @@ -134,7 +134,7 @@ 9:18-9:31: @2[8]: _22 = &(*_23) 9:18-9:31: @2[9]: _21 = move _22 as &[&str] (Pointer(Unsize)) 9:9-9:33: @2[15]: _29 = () -9:9-9:33: @2[16]: FakeRead(ForMatchedPlace, _29) +9:9-9:33: @2[16]: FakeRead(ForMatchedPlace(None), _29) 9:9-9:33: @2[17]: _30 = const might_panic::promoted[0] 9:9-9:33: @2[18]: _27 = &(*_30) 9:9-9:33: @2[19]: _26 = &(*_27) @@ -149,7 +149,7 @@ 9:18-9:31: @2[8]: _22 = &(*_23) 9:18-9:31: @2[9]: _21 = move _22 as &[&str] (Pointer(Unsize)) 9:9-9:33: @2[15]: _29 = () -9:9-9:33: @2[16]: FakeRead(ForMatchedPlace, _29) +9:9-9:33: @2[16]: FakeRead(ForMatchedPlace(None), _29) 9:9-9:33: @2[17]: _30 = const might_panic::promoted[0] 9:9-9:33: @2[18]: _27 = &(*_30) 9:9-9:33: @2[19]: _26 = &(*_27) diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.partial_eq/partial_eq.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.partial_eq/partial_eq.main.-------.InstrumentCoverage.0.html index 3e307c4f460d5..6903aaee7381d 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.partial_eq/partial_eq.main.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.partial_eq/partial_eq.main.-------.InstrumentCoverage.0.html @@ -70,9 +70,9 @@
@0,1,2,3,4,5,6,7,8⦊fn main() { let version_3_2_1 = Version::new(3, 2, 1); let version_3_3_0 = Version::new(3, 3, 0); println!("{:?} < {:?} = {}", version_3_2_1, version_3_3_0, version_3_2_1 < version_3_3_0); @0,1,2,3⦊fn main() { // Initialize test constants in a way that cannot be determined at compile time, to ensure // rustc and LLVM cannot optimize out statements (or coverage counters) downstream from // dependent conditions. let is_true = std::env::args().len() == 1; let mut countdown = 0; if is_true⦉@0,1,2,3 @4⦊{ diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.simple_match/simple_match.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.simple_match/simple_match.main.-------.InstrumentCoverage.0.html index a56692d9c2a48..b0816e281305c 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.simple_match/simple_match.main.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.simple_match/simple_match.main.-------.InstrumentCoverage.0.html @@ -73,65 +73,65 @@ 7:19-7:35: @1[0]: _3 = &_4 7:19-7:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb20] 7:19-7:46: @2[1]: _1 = Eq(move _2, const 1_usize) -7:9-7:16: @2[3]: FakeRead(ForLet, _1) +7:9-7:16: @2[3]: FakeRead(ForLet(None), _1) 9:25-9:26: @3[2]: _5 = const 1_i32 -9:9-9:22: @3[3]: FakeRead(ForLet, _5) +9:9-9:22: @3[3]: FakeRead(ForLet(None), _5) 10:8-10:15: @3[6]: _7 = _1">@0,1,2,3⦊fn main() { // Initialize test constants in a way that cannot be determined at compile time, to ensure // rustc and LLVM cannot optimize out statements (or coverage counters) downstream from // dependent conditions. let is_true = std::env::args().len() == 1; let mut countdown = 1; if is_true⦉@0,1,2,3 @4⦊{ @8,9,10⦊0..2⦉@8,9,10 +17:9-17:13: @10[1]: FakeRead(ForMatchedPlace(None), _14)">@8,9,10⦊0..2⦉@8,9,10 { let z ; match - @12,14,16⦊countdown⦉@12,14,16 + @12,14,16⦊countdown⦉@12,14,16 { @17⦊x⦉@17 if @@ -167,49 +167,49 @@ @17⦊{ z = countdown ; let y = countdown ; countdown = 10 ; }⦉@17 _ diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.try_error_result/try_error_result.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.try_error_result/try_error_result.main.-------.InstrumentCoverage.0.html index 5b0c5cb072f04..0a0c3f75bca88 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.try_error_result/try_error_result.main.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.try_error_result/try_error_result.main.-------.InstrumentCoverage.0.html @@ -70,11 +70,11 @@
@0,1⦊fn main() -> Result<(),()> { +13:9-14:18: @0[2]: FakeRead(ForLet(None), _1)">@0,1⦊fn main() -> Result<(),()> { let mut +13:9-14:18: @0[2]: FakeRead(ForLet(None), _1)"> let mut countdown = 10⦉@0,1 +13:9-14:18: @0[2]: FakeRead(ForLet(None), _1)"> countdown = 10⦉@0,1 ; for @2,3,4⦊0..10⦉@2,3,4 +19:9-19:14: @4[1]: FakeRead(ForMatchedPlace(None), _9)">@2,3,4⦊0..10⦉@2,3,4 { @0⦊fn foo<T>(x: T) { +2:9-2:14: @0[2]: FakeRead(ForLet(None), _2)">@0⦊fn foo<T>(x: T) { let mut i = 0⦉@0; +2:9-2:14: @0[2]: FakeRead(ForLet(None), _2)"> let mut i = 0⦉@0; while @1,2⦊i < 10⦉@1,2 { +3:11-3:17: @2[5]: FakeRead(ForMatchedPlace(None), _4)">@1,2⦊i < 10⦉@1,2 { @3,5⦊i != 0⦉@3,5 || @8⦊i != 0⦉@8; diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.unused/unused.unused_template_func.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.unused/unused.unused_template_func.-------.InstrumentCoverage.0.html index 9b32bcb47f6e5..f9f62575ecbec 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.unused/unused.unused_template_func.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.unused/unused.unused_template_func.-------.InstrumentCoverage.0.html @@ -70,12 +70,12 @@
@0⦊fn unused_template_func<T>(x: T) { +10:9-10:14: @0[2]: FakeRead(ForLet(None), _2)">@0⦊fn unused_template_func<T>(x: T) { let mut i = 0⦉@0; +10:9-10:14: @0[2]: FakeRead(ForLet(None), _2)"> let mut i = 0⦉@0; while @1,2⦊i < 10⦉@1,2 { +11:11-11:17: @2[5]: FakeRead(ForMatchedPlace(None), _4)">@1,2⦊i < 10⦉@1,2 { @3,5⦊i != 0⦉@3,5 || @8⦊i != 0⦉@8; diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_crate/used_crate.unused_function.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_crate/used_crate.unused_function.-------.InstrumentCoverage.0.html index 65e21ecef13bd..ca5d9ecb2ea01 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_crate/used_crate.unused_function.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_crate/used_crate.unused_function.-------.InstrumentCoverage.0.html @@ -73,36 +73,36 @@ 38:19-38:35: @1[0]: _3 = &_4 38:19-38:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb7] 38:19-38:46: @2[1]: _1 = Eq(move _2, const 1_usize) -38:9-38:16: @2[3]: FakeRead(ForLet, _1) +38:9-38:16: @2[3]: FakeRead(ForLet(None), _1) 39:25-39:26: @3[2]: _5 = const 2_i32 -39:9-39:22: @3[3]: FakeRead(ForLet, _5) +39:9-39:22: @3[3]: FakeRead(ForLet(None), _5) 40:9-40:16: @3[6]: _7 = _1 40:8-40:16: @3[7]: _6 = Not(move _7)">@0,1,2,3⦊pub fn unused_function() { let is_true = std::env::args().len() == 1; let mut countdown = 2; if !is_true⦉@0,1,2,3 @4⦊{ diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_crate/used_crate.unused_generic_function.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_crate/used_crate.unused_generic_function.-------.InstrumentCoverage.0.html index 02154a2268b75..3d5373bce5526 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_crate/used_crate.unused_generic_function.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_crate/used_crate.unused_generic_function.-------.InstrumentCoverage.0.html @@ -75,7 +75,7 @@ 34:14-34:49: @0[9]: _5 = move _6 as &[&str] (Pointer(Unsize)) 34:51-34:54: @0[17]: _14 = &_1 34:5-34:56: @0[18]: _13 = (move _14,) -34:5-34:56: @0[20]: FakeRead(ForMatchedPlace, _13) +34:5-34:56: @0[20]: FakeRead(ForMatchedPlace(None), _13) 34:5-34:56: @0[22]: _15 = (_13.0: &T) 34:5-34:56: @0[25]: _17 = &(*_15) 34:5-34:56: @0[27]: _18 = <T as std::fmt::Debug>::fmt as for<'r, 's, 't0> fn(&'r T, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -95,7 +95,7 @@ 34:14-34:49: @0[9]: _5 = move _6 as &[&str] (Pointer(Unsize)) 34:51-34:54: @0[17]: _14 = &_1 34:5-34:56: @0[18]: _13 = (move _14,) -34:5-34:56: @0[20]: FakeRead(ForMatchedPlace, _13) +34:5-34:56: @0[20]: FakeRead(ForMatchedPlace(None), _13) 34:5-34:56: @0[22]: _15 = (_13.0: &T) 34:5-34:56: @0[25]: _17 = &(*_15) 34:5-34:56: @0[27]: _18 = <T as std::fmt::Debug>::fmt as for<'r, 's, 't0> fn(&'r T, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -115,7 +115,7 @@ 34:14-34:49: @0[9]: _5 = move _6 as &[&str] (Pointer(Unsize)) 34:51-34:54: @0[17]: _14 = &_1 34:5-34:56: @0[18]: _13 = (move _14,) -34:5-34:56: @0[20]: FakeRead(ForMatchedPlace, _13) +34:5-34:56: @0[20]: FakeRead(ForMatchedPlace(None), _13) 34:5-34:56: @0[22]: _15 = (_13.0: &T) 34:5-34:56: @0[25]: _17 = &(*_15) 34:5-34:56: @0[27]: _18 = <T as std::fmt::Debug>::fmt as for<'r, 's, 't0> fn(&'r T, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_crate/used_crate.unused_private_function.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_crate/used_crate.unused_private_function.-------.InstrumentCoverage.0.html index 78228594e3753..9c4ba9bbe232d 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_crate/used_crate.unused_private_function.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_crate/used_crate.unused_private_function.-------.InstrumentCoverage.0.html @@ -73,36 +73,36 @@ 46:19-46:35: @1[0]: _3 = &_4 46:19-46:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb7] 46:19-46:46: @2[1]: _1 = Eq(move _2, const 1_usize) -46:9-46:16: @2[3]: FakeRead(ForLet, _1) +46:9-46:16: @2[3]: FakeRead(ForLet(None), _1) 47:25-47:26: @3[2]: _5 = const 2_i32 -47:9-47:22: @3[3]: FakeRead(ForLet, _5) +47:9-47:22: @3[3]: FakeRead(ForLet(None), _5) 48:9-48:16: @3[6]: _7 = _1 48:8-48:16: @3[7]: _6 = Not(move _7)">@0,1,2,3⦊fn unused_private_function() { let is_true = std::env::args().len() == 1; let mut countdown = 2; if !is_true⦉@0,1,2,3 @4⦊{ diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_crate/used_crate.use_this_lib_crate.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_crate/used_crate.use_this_lib_crate.-------.InstrumentCoverage.0.html index 8f618d2e24954..d730d0d204cae 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_crate/used_crate.use_this_lib_crate.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_crate/used_crate.use_this_lib_crate.-------.InstrumentCoverage.0.html @@ -76,7 +76,7 @@ 58:20-58:36: @2[7]: _5 = move _6 58:20-58:36: @2[8]: _4 = move _5 as std::boxed::Box<[i32]> (Pointer(Unsize)) 58:20-58:36: @4.Call: _3 = std::slice::<impl [i32]>::into_vec::<std::alloc::Global>(move _4) -> [return: bb5, unwind: bb12] -58:9-58:17: @5[1]: FakeRead(ForLet, _3) +58:9-58:17: @5[1]: FakeRead(ForLet(None), _3) 59:52-59:60: @5[4]: _8 = move _3 59:5-59:61: @5.Call: _7 = used_only_from_this_lib_crate_generic_function::<std::vec::Vec<i32>>(move _8) -> [return: bb6, unwind: bb9] 60:5-60:91: @6.Call: _9 = used_only_from_this_lib_crate_generic_function::<&str>(const "used ONLY from library used_crate.rs") -> [return: bb7, unwind: bb10] @@ -89,7 +89,7 @@ 58:20-58:36: @2[7]: _5 = move _6 58:20-58:36: @2[8]: _4 = move _5 as std::boxed::Box<[i32]> (Pointer(Unsize)) 58:20-58:36: @4.Call: _3 = std::slice::<impl [i32]>::into_vec::<std::alloc::Global>(move _4) -> [return: bb5, unwind: bb12] -58:9-58:17: @5[1]: FakeRead(ForLet, _3) +58:9-58:17: @5[1]: FakeRead(ForLet(None), _3) 59:52-59:60: @5[4]: _8 = move _3 59:5-59:61: @5.Call: _7 = used_only_from_this_lib_crate_generic_function::<std::vec::Vec<i32>>(move _8) -> [return: bb6, unwind: bb9] 60:5-60:91: @6.Call: _9 = used_only_from_this_lib_crate_generic_function::<&str>(const "used ONLY from library used_crate.rs") -> [return: bb7, unwind: bb10] @@ -102,7 +102,7 @@ 58:20-58:36: @2[7]: _5 = move _6 58:20-58:36: @2[8]: _4 = move _5 as std::boxed::Box<[i32]> (Pointer(Unsize)) 58:20-58:36: @4.Call: _3 = std::slice::<impl [i32]>::into_vec::<std::alloc::Global>(move _4) -> [return: bb5, unwind: bb12] -58:9-58:17: @5[1]: FakeRead(ForLet, _3) +58:9-58:17: @5[1]: FakeRead(ForLet(None), _3) 59:52-59:60: @5[4]: _8 = move _3 59:5-59:61: @5.Call: _7 = used_only_from_this_lib_crate_generic_function::<std::vec::Vec<i32>>(move _8) -> [return: bb6, unwind: bb9] 60:5-60:91: @6.Call: _9 = used_only_from_this_lib_crate_generic_function::<&str>(const "used ONLY from library used_crate.rs") -> [return: bb7, unwind: bb10] @@ -115,7 +115,7 @@ 58:20-58:36: @2[7]: _5 = move _6 58:20-58:36: @2[8]: _4 = move _5 as std::boxed::Box<[i32]> (Pointer(Unsize)) 58:20-58:36: @4.Call: _3 = std::slice::<impl [i32]>::into_vec::<std::alloc::Global>(move _4) -> [return: bb5, unwind: bb12] -58:9-58:17: @5[1]: FakeRead(ForLet, _3) +58:9-58:17: @5[1]: FakeRead(ForLet(None), _3) 59:52-59:60: @5[4]: _8 = move _3 59:5-59:61: @5.Call: _7 = used_only_from_this_lib_crate_generic_function::<std::vec::Vec<i32>>(move _8) -> [return: bb6, unwind: bb9] 60:5-60:91: @6.Call: _9 = used_only_from_this_lib_crate_generic_function::<&str>(const "used ONLY from library used_crate.rs") -> [return: bb7, unwind: bb10] @@ -128,7 +128,7 @@ 58:20-58:36: @2[7]: _5 = move _6 58:20-58:36: @2[8]: _4 = move _5 as std::boxed::Box<[i32]> (Pointer(Unsize)) 58:20-58:36: @4.Call: _3 = std::slice::<impl [i32]>::into_vec::<std::alloc::Global>(move _4) -> [return: bb5, unwind: bb12] -58:9-58:17: @5[1]: FakeRead(ForLet, _3) +58:9-58:17: @5[1]: FakeRead(ForLet(None), _3) 59:52-59:60: @5[4]: _8 = move _3 59:5-59:61: @5.Call: _7 = used_only_from_this_lib_crate_generic_function::<std::vec::Vec<i32>>(move _8) -> [return: bb6, unwind: bb9] 60:5-60:91: @6.Call: _9 = used_only_from_this_lib_crate_generic_function::<&str>(const "used ONLY from library used_crate.rs") -> [return: bb7, unwind: bb10] @@ -141,7 +141,7 @@ 58:20-58:36: @2[7]: _5 = move _6 58:20-58:36: @2[8]: _4 = move _5 as std::boxed::Box<[i32]> (Pointer(Unsize)) 58:20-58:36: @4.Call: _3 = std::slice::<impl [i32]>::into_vec::<std::alloc::Global>(move _4) -> [return: bb5, unwind: bb12] -58:9-58:17: @5[1]: FakeRead(ForLet, _3) +58:9-58:17: @5[1]: FakeRead(ForLet(None), _3) 59:52-59:60: @5[4]: _8 = move _3 59:5-59:61: @5.Call: _7 = used_only_from_this_lib_crate_generic_function::<std::vec::Vec<i32>>(move _8) -> [return: bb6, unwind: bb9] 60:5-60:91: @6.Call: _9 = used_only_from_this_lib_crate_generic_function::<&str>(const "used ONLY from library used_crate.rs") -> [return: bb7, unwind: bb10] @@ -154,7 +154,7 @@ 58:20-58:36: @2[7]: _5 = move _6 58:20-58:36: @2[8]: _4 = move _5 as std::boxed::Box<[i32]> (Pointer(Unsize)) 58:20-58:36: @4.Call: _3 = std::slice::<impl [i32]>::into_vec::<std::alloc::Global>(move _4) -> [return: bb5, unwind: bb12] -58:9-58:17: @5[1]: FakeRead(ForLet, _3) +58:9-58:17: @5[1]: FakeRead(ForLet(None), _3) 59:52-59:60: @5[4]: _8 = move _3 59:5-59:61: @5.Call: _7 = used_only_from_this_lib_crate_generic_function::<std::vec::Vec<i32>>(move _8) -> [return: bb6, unwind: bb9] 60:5-60:91: @6.Call: _9 = used_only_from_this_lib_crate_generic_function::<&str>(const "used ONLY from library used_crate.rs") -> [return: bb7, unwind: bb10] @@ -167,7 +167,7 @@ 58:20-58:36: @2[7]: _5 = move _6 58:20-58:36: @2[8]: _4 = move _5 as std::boxed::Box<[i32]> (Pointer(Unsize)) 58:20-58:36: @4.Call: _3 = std::slice::<impl [i32]>::into_vec::<std::alloc::Global>(move _4) -> [return: bb5, unwind: bb12] -58:9-58:17: @5[1]: FakeRead(ForLet, _3) +58:9-58:17: @5[1]: FakeRead(ForLet(None), _3) 59:52-59:60: @5[4]: _8 = move _3 59:5-59:61: @5.Call: _7 = used_only_from_this_lib_crate_generic_function::<std::vec::Vec<i32>>(move _8) -> [return: bb6, unwind: bb9] 60:5-60:91: @6.Call: _9 = used_only_from_this_lib_crate_generic_function::<&str>(const "used ONLY from library used_crate.rs") -> [return: bb7, unwind: bb10] @@ -180,7 +180,7 @@ 58:20-58:36: @2[7]: _5 = move _6 58:20-58:36: @2[8]: _4 = move _5 as std::boxed::Box<[i32]> (Pointer(Unsize)) 58:20-58:36: @4.Call: _3 = std::slice::<impl [i32]>::into_vec::<std::alloc::Global>(move _4) -> [return: bb5, unwind: bb12] -58:9-58:17: @5[1]: FakeRead(ForLet, _3) +58:9-58:17: @5[1]: FakeRead(ForLet(None), _3) 59:52-59:60: @5[4]: _8 = move _3 59:5-59:61: @5.Call: _7 = used_only_from_this_lib_crate_generic_function::<std::vec::Vec<i32>>(move _8) -> [return: bb6, unwind: bb9] 60:5-60:91: @6.Call: _9 = used_only_from_this_lib_crate_generic_function::<&str>(const "used ONLY from library used_crate.rs") -> [return: bb7, unwind: bb10] diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_crate/used_crate.used_from_bin_crate_and_lib_crate_generic_function.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_crate/used_crate.used_from_bin_crate_and_lib_crate_generic_function.-------.InstrumentCoverage.0.html index 61a709c4729f2..752cb72129d7b 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_crate/used_crate.used_from_bin_crate_and_lib_crate_generic_function.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_crate/used_crate.used_from_bin_crate_and_lib_crate_generic_function.-------.InstrumentCoverage.0.html @@ -75,7 +75,7 @@ 26:14-26:76: @0[9]: _5 = move _6 as &[&str] (Pointer(Unsize)) 26:78-26:81: @0[17]: _14 = &_1 26:5-26:83: @0[18]: _13 = (move _14,) -26:5-26:83: @0[20]: FakeRead(ForMatchedPlace, _13) +26:5-26:83: @0[20]: FakeRead(ForMatchedPlace(None), _13) 26:5-26:83: @0[22]: _15 = (_13.0: &T) 26:5-26:83: @0[25]: _17 = &(*_15) 26:5-26:83: @0[27]: _18 = <T as std::fmt::Debug>::fmt as for<'r, 's, 't0> fn(&'r T, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -95,7 +95,7 @@ 26:14-26:76: @0[9]: _5 = move _6 as &[&str] (Pointer(Unsize)) 26:78-26:81: @0[17]: _14 = &_1 26:5-26:83: @0[18]: _13 = (move _14,) -26:5-26:83: @0[20]: FakeRead(ForMatchedPlace, _13) +26:5-26:83: @0[20]: FakeRead(ForMatchedPlace(None), _13) 26:5-26:83: @0[22]: _15 = (_13.0: &T) 26:5-26:83: @0[25]: _17 = &(*_15) 26:5-26:83: @0[27]: _18 = <T as std::fmt::Debug>::fmt as for<'r, 's, 't0> fn(&'r T, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -115,7 +115,7 @@ 26:14-26:76: @0[9]: _5 = move _6 as &[&str] (Pointer(Unsize)) 26:78-26:81: @0[17]: _14 = &_1 26:5-26:83: @0[18]: _13 = (move _14,) -26:5-26:83: @0[20]: FakeRead(ForMatchedPlace, _13) +26:5-26:83: @0[20]: FakeRead(ForMatchedPlace(None), _13) 26:5-26:83: @0[22]: _15 = (_13.0: &T) 26:5-26:83: @0[25]: _17 = &(*_15) 26:5-26:83: @0[27]: _18 = <T as std::fmt::Debug>::fmt as for<'r, 's, 't0> fn(&'r T, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_crate/used_crate.used_function.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_crate/used_crate.used_function.-------.InstrumentCoverage.0.html index 974a24b2c6d44..c717cb6685714 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_crate/used_crate.used_function.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_crate/used_crate.used_function.-------.InstrumentCoverage.0.html @@ -77,25 +77,25 @@ 9:19-9:35: @1[0]: _3 = &_4 9:19-9:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb8] 9:19-9:46: @2[1]: _1 = Eq(move _2, const 1_usize) -9:9-9:16: @2[3]: FakeRead(ForLet, _1) +9:9-9:16: @2[3]: FakeRead(ForLet(None), _1) 10:25-10:26: @3[2]: _5 = const 0_i32 -10:9-10:22: @3[3]: FakeRead(ForLet, _5) +10:9-10:22: @3[3]: FakeRead(ForLet(None), _5) 11:8-11:15: @3[6]: _7 = _1">@0,1,2,3⦊is_true = std::env::args().len() == 1; let mut countdown = 0; if is_true⦉@0,1,2,3 @4⦊{ @0,1,2,3⦊pub fn unused_function() { let is_true = std::env::args().len() == 1; let mut countdown = 2; if !is_true⦉@0,1,2,3 @4⦊{ diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_inline_crate/used_inline_crate.unused_generic_function.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_inline_crate/used_inline_crate.unused_generic_function.-------.InstrumentCoverage.0.html index 9e3052ccac155..3c84b2cc039ae 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_inline_crate/used_inline_crate.unused_generic_function.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_inline_crate/used_inline_crate.unused_generic_function.-------.InstrumentCoverage.0.html @@ -75,7 +75,7 @@ 61:14-61:49: @0[9]: _5 = move _6 as &[&str] (Pointer(Unsize)) 61:51-61:54: @0[17]: _14 = &_1 61:5-61:56: @0[18]: _13 = (move _14,) -61:5-61:56: @0[20]: FakeRead(ForMatchedPlace, _13) +61:5-61:56: @0[20]: FakeRead(ForMatchedPlace(None), _13) 61:5-61:56: @0[22]: _15 = (_13.0: &T) 61:5-61:56: @0[25]: _17 = &(*_15) 61:5-61:56: @0[27]: _18 = <T as std::fmt::Debug>::fmt as for<'r, 's, 't0> fn(&'r T, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -95,7 +95,7 @@ 61:14-61:49: @0[9]: _5 = move _6 as &[&str] (Pointer(Unsize)) 61:51-61:54: @0[17]: _14 = &_1 61:5-61:56: @0[18]: _13 = (move _14,) -61:5-61:56: @0[20]: FakeRead(ForMatchedPlace, _13) +61:5-61:56: @0[20]: FakeRead(ForMatchedPlace(None), _13) 61:5-61:56: @0[22]: _15 = (_13.0: &T) 61:5-61:56: @0[25]: _17 = &(*_15) 61:5-61:56: @0[27]: _18 = <T as std::fmt::Debug>::fmt as for<'r, 's, 't0> fn(&'r T, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -115,7 +115,7 @@ 61:14-61:49: @0[9]: _5 = move _6 as &[&str] (Pointer(Unsize)) 61:51-61:54: @0[17]: _14 = &_1 61:5-61:56: @0[18]: _13 = (move _14,) -61:5-61:56: @0[20]: FakeRead(ForMatchedPlace, _13) +61:5-61:56: @0[20]: FakeRead(ForMatchedPlace(None), _13) 61:5-61:56: @0[22]: _15 = (_13.0: &T) 61:5-61:56: @0[25]: _17 = &(*_15) 61:5-61:56: @0[27]: _18 = <T as std::fmt::Debug>::fmt as for<'r, 's, 't0> fn(&'r T, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_inline_crate/used_inline_crate.unused_private_function.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_inline_crate/used_inline_crate.unused_private_function.-------.InstrumentCoverage.0.html index e9c381db94025..e30495d8f70ca 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_inline_crate/used_inline_crate.unused_private_function.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_inline_crate/used_inline_crate.unused_private_function.-------.InstrumentCoverage.0.html @@ -73,36 +73,36 @@ 75:19-75:35: @1[0]: _3 = &_4 75:19-75:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb7] 75:19-75:46: @2[1]: _1 = Eq(move _2, const 1_usize) -75:9-75:16: @2[3]: FakeRead(ForLet, _1) +75:9-75:16: @2[3]: FakeRead(ForLet(None), _1) 76:25-76:26: @3[2]: _5 = const 2_i32 -76:9-76:22: @3[3]: FakeRead(ForLet, _5) +76:9-76:22: @3[3]: FakeRead(ForLet(None), _5) 77:9-77:16: @3[6]: _7 = _1 77:8-77:16: @3[7]: _6 = Not(move _7)">@0,1,2,3⦊fn unused_private_function() { let is_true = std::env::args().len() == 1; let mut countdown = 2; if !is_true⦉@0,1,2,3 @4⦊{ diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_inline_crate/used_inline_crate.use_this_lib_crate.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_inline_crate/used_inline_crate.use_this_lib_crate.-------.InstrumentCoverage.0.html index 056f618a403c9..2e1bf0f439bb0 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_inline_crate/used_inline_crate.use_this_lib_crate.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_inline_crate/used_inline_crate.use_this_lib_crate.-------.InstrumentCoverage.0.html @@ -76,7 +76,7 @@ 87:20-87:36: @2[7]: _5 = move _6 87:20-87:36: @2[8]: _4 = move _5 as std::boxed::Box<[i32]> (Pointer(Unsize)) 87:20-87:36: @4.Call: _3 = std::slice::<impl [i32]>::into_vec::<std::alloc::Global>(move _4) -> [return: bb5, unwind: bb12] -87:9-87:17: @5[1]: FakeRead(ForLet, _3) +87:9-87:17: @5[1]: FakeRead(ForLet(None), _3) 88:52-88:60: @5[4]: _8 = move _3 88:5-88:61: @5.Call: _7 = used_only_from_this_lib_crate_generic_function::<std::vec::Vec<i32>>(move _8) -> [return: bb6, unwind: bb9] 89:5-89:91: @6.Call: _9 = used_only_from_this_lib_crate_generic_function::<&str>(const "used ONLY from library used_crate.rs") -> [return: bb7, unwind: bb10] @@ -89,7 +89,7 @@ 87:20-87:36: @2[7]: _5 = move _6 87:20-87:36: @2[8]: _4 = move _5 as std::boxed::Box<[i32]> (Pointer(Unsize)) 87:20-87:36: @4.Call: _3 = std::slice::<impl [i32]>::into_vec::<std::alloc::Global>(move _4) -> [return: bb5, unwind: bb12] -87:9-87:17: @5[1]: FakeRead(ForLet, _3) +87:9-87:17: @5[1]: FakeRead(ForLet(None), _3) 88:52-88:60: @5[4]: _8 = move _3 88:5-88:61: @5.Call: _7 = used_only_from_this_lib_crate_generic_function::<std::vec::Vec<i32>>(move _8) -> [return: bb6, unwind: bb9] 89:5-89:91: @6.Call: _9 = used_only_from_this_lib_crate_generic_function::<&str>(const "used ONLY from library used_crate.rs") -> [return: bb7, unwind: bb10] @@ -102,7 +102,7 @@ 87:20-87:36: @2[7]: _5 = move _6 87:20-87:36: @2[8]: _4 = move _5 as std::boxed::Box<[i32]> (Pointer(Unsize)) 87:20-87:36: @4.Call: _3 = std::slice::<impl [i32]>::into_vec::<std::alloc::Global>(move _4) -> [return: bb5, unwind: bb12] -87:9-87:17: @5[1]: FakeRead(ForLet, _3) +87:9-87:17: @5[1]: FakeRead(ForLet(None), _3) 88:52-88:60: @5[4]: _8 = move _3 88:5-88:61: @5.Call: _7 = used_only_from_this_lib_crate_generic_function::<std::vec::Vec<i32>>(move _8) -> [return: bb6, unwind: bb9] 89:5-89:91: @6.Call: _9 = used_only_from_this_lib_crate_generic_function::<&str>(const "used ONLY from library used_crate.rs") -> [return: bb7, unwind: bb10] @@ -115,7 +115,7 @@ 87:20-87:36: @2[7]: _5 = move _6 87:20-87:36: @2[8]: _4 = move _5 as std::boxed::Box<[i32]> (Pointer(Unsize)) 87:20-87:36: @4.Call: _3 = std::slice::<impl [i32]>::into_vec::<std::alloc::Global>(move _4) -> [return: bb5, unwind: bb12] -87:9-87:17: @5[1]: FakeRead(ForLet, _3) +87:9-87:17: @5[1]: FakeRead(ForLet(None), _3) 88:52-88:60: @5[4]: _8 = move _3 88:5-88:61: @5.Call: _7 = used_only_from_this_lib_crate_generic_function::<std::vec::Vec<i32>>(move _8) -> [return: bb6, unwind: bb9] 89:5-89:91: @6.Call: _9 = used_only_from_this_lib_crate_generic_function::<&str>(const "used ONLY from library used_crate.rs") -> [return: bb7, unwind: bb10] @@ -128,7 +128,7 @@ 87:20-87:36: @2[7]: _5 = move _6 87:20-87:36: @2[8]: _4 = move _5 as std::boxed::Box<[i32]> (Pointer(Unsize)) 87:20-87:36: @4.Call: _3 = std::slice::<impl [i32]>::into_vec::<std::alloc::Global>(move _4) -> [return: bb5, unwind: bb12] -87:9-87:17: @5[1]: FakeRead(ForLet, _3) +87:9-87:17: @5[1]: FakeRead(ForLet(None), _3) 88:52-88:60: @5[4]: _8 = move _3 88:5-88:61: @5.Call: _7 = used_only_from_this_lib_crate_generic_function::<std::vec::Vec<i32>>(move _8) -> [return: bb6, unwind: bb9] 89:5-89:91: @6.Call: _9 = used_only_from_this_lib_crate_generic_function::<&str>(const "used ONLY from library used_crate.rs") -> [return: bb7, unwind: bb10] @@ -141,7 +141,7 @@ 87:20-87:36: @2[7]: _5 = move _6 87:20-87:36: @2[8]: _4 = move _5 as std::boxed::Box<[i32]> (Pointer(Unsize)) 87:20-87:36: @4.Call: _3 = std::slice::<impl [i32]>::into_vec::<std::alloc::Global>(move _4) -> [return: bb5, unwind: bb12] -87:9-87:17: @5[1]: FakeRead(ForLet, _3) +87:9-87:17: @5[1]: FakeRead(ForLet(None), _3) 88:52-88:60: @5[4]: _8 = move _3 88:5-88:61: @5.Call: _7 = used_only_from_this_lib_crate_generic_function::<std::vec::Vec<i32>>(move _8) -> [return: bb6, unwind: bb9] 89:5-89:91: @6.Call: _9 = used_only_from_this_lib_crate_generic_function::<&str>(const "used ONLY from library used_crate.rs") -> [return: bb7, unwind: bb10] @@ -154,7 +154,7 @@ 87:20-87:36: @2[7]: _5 = move _6 87:20-87:36: @2[8]: _4 = move _5 as std::boxed::Box<[i32]> (Pointer(Unsize)) 87:20-87:36: @4.Call: _3 = std::slice::<impl [i32]>::into_vec::<std::alloc::Global>(move _4) -> [return: bb5, unwind: bb12] -87:9-87:17: @5[1]: FakeRead(ForLet, _3) +87:9-87:17: @5[1]: FakeRead(ForLet(None), _3) 88:52-88:60: @5[4]: _8 = move _3 88:5-88:61: @5.Call: _7 = used_only_from_this_lib_crate_generic_function::<std::vec::Vec<i32>>(move _8) -> [return: bb6, unwind: bb9] 89:5-89:91: @6.Call: _9 = used_only_from_this_lib_crate_generic_function::<&str>(const "used ONLY from library used_crate.rs") -> [return: bb7, unwind: bb10] @@ -167,7 +167,7 @@ 87:20-87:36: @2[7]: _5 = move _6 87:20-87:36: @2[8]: _4 = move _5 as std::boxed::Box<[i32]> (Pointer(Unsize)) 87:20-87:36: @4.Call: _3 = std::slice::<impl [i32]>::into_vec::<std::alloc::Global>(move _4) -> [return: bb5, unwind: bb12] -87:9-87:17: @5[1]: FakeRead(ForLet, _3) +87:9-87:17: @5[1]: FakeRead(ForLet(None), _3) 88:52-88:60: @5[4]: _8 = move _3 88:5-88:61: @5.Call: _7 = used_only_from_this_lib_crate_generic_function::<std::vec::Vec<i32>>(move _8) -> [return: bb6, unwind: bb9] 89:5-89:91: @6.Call: _9 = used_only_from_this_lib_crate_generic_function::<&str>(const "used ONLY from library used_crate.rs") -> [return: bb7, unwind: bb10] @@ -180,7 +180,7 @@ 87:20-87:36: @2[7]: _5 = move _6 87:20-87:36: @2[8]: _4 = move _5 as std::boxed::Box<[i32]> (Pointer(Unsize)) 87:20-87:36: @4.Call: _3 = std::slice::<impl [i32]>::into_vec::<std::alloc::Global>(move _4) -> [return: bb5, unwind: bb12] -87:9-87:17: @5[1]: FakeRead(ForLet, _3) +87:9-87:17: @5[1]: FakeRead(ForLet(None), _3) 88:52-88:60: @5[4]: _8 = move _3 88:5-88:61: @5.Call: _7 = used_only_from_this_lib_crate_generic_function::<std::vec::Vec<i32>>(move _8) -> [return: bb6, unwind: bb9] 89:5-89:91: @6.Call: _9 = used_only_from_this_lib_crate_generic_function::<&str>(const "used ONLY from library used_crate.rs") -> [return: bb7, unwind: bb10] diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_inline_crate/used_inline_crate.used_from_bin_crate_and_lib_crate_generic_function.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_inline_crate/used_inline_crate.used_from_bin_crate_and_lib_crate_generic_function.-------.InstrumentCoverage.0.html index 0d88b0bc60e34..055d42cd65ac2 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_inline_crate/used_inline_crate.used_from_bin_crate_and_lib_crate_generic_function.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_inline_crate/used_inline_crate.used_from_bin_crate_and_lib_crate_generic_function.-------.InstrumentCoverage.0.html @@ -75,7 +75,7 @@ 51:14-51:76: @0[9]: _5 = move _6 as &[&str] (Pointer(Unsize)) 51:78-51:81: @0[17]: _14 = &_1 51:5-51:83: @0[18]: _13 = (move _14,) -51:5-51:83: @0[20]: FakeRead(ForMatchedPlace, _13) +51:5-51:83: @0[20]: FakeRead(ForMatchedPlace(None), _13) 51:5-51:83: @0[22]: _15 = (_13.0: &T) 51:5-51:83: @0[25]: _17 = &(*_15) 51:5-51:83: @0[27]: _18 = <T as std::fmt::Debug>::fmt as for<'r, 's, 't0> fn(&'r T, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -95,7 +95,7 @@ 51:14-51:76: @0[9]: _5 = move _6 as &[&str] (Pointer(Unsize)) 51:78-51:81: @0[17]: _14 = &_1 51:5-51:83: @0[18]: _13 = (move _14,) -51:5-51:83: @0[20]: FakeRead(ForMatchedPlace, _13) +51:5-51:83: @0[20]: FakeRead(ForMatchedPlace(None), _13) 51:5-51:83: @0[22]: _15 = (_13.0: &T) 51:5-51:83: @0[25]: _17 = &(*_15) 51:5-51:83: @0[27]: _18 = <T as std::fmt::Debug>::fmt as for<'r, 's, 't0> fn(&'r T, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) @@ -115,7 +115,7 @@ 51:14-51:76: @0[9]: _5 = move _6 as &[&str] (Pointer(Unsize)) 51:78-51:81: @0[17]: _14 = &_1 51:5-51:83: @0[18]: _13 = (move _14,) -51:5-51:83: @0[20]: FakeRead(ForMatchedPlace, _13) +51:5-51:83: @0[20]: FakeRead(ForMatchedPlace(None), _13) 51:5-51:83: @0[22]: _15 = (_13.0: &T) 51:5-51:83: @0[25]: _17 = &(*_15) 51:5-51:83: @0[27]: _18 = <T as std::fmt::Debug>::fmt as for<'r, 's, 't0> fn(&'r T, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)) diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_inline_crate/used_inline_crate.used_function.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_inline_crate/used_inline_crate.used_function.-------.InstrumentCoverage.0.html index d722d9f46ecff..240325238a303 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_inline_crate/used_inline_crate.used_function.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.used_inline_crate/used_inline_crate.used_function.-------.InstrumentCoverage.0.html @@ -77,25 +77,25 @@ 11:19-11:35: @1[0]: _3 = &_4 11:19-11:41: @1.Call: _2 = <std::env::Args as std::iter::ExactSizeIterator>::len(move _3) -> [return: bb2, unwind: bb8] 11:19-11:46: @2[1]: _1 = Eq(move _2, const 1_usize) -11:9-11:16: @2[3]: FakeRead(ForLet, _1) +11:9-11:16: @2[3]: FakeRead(ForLet(None), _1) 12:25-12:26: @3[2]: _5 = const 0_i32 -12:9-12:22: @3[3]: FakeRead(ForLet, _5) +12:9-12:22: @3[3]: FakeRead(ForLet(None), _5) 13:8-13:15: @3[6]: _7 = _1">@0,1,2,3⦊is_true = std::env::args().len() == 1; let mut countdown = 0; if is_true⦉@0,1,2,3 @4⦊{ @0,1,2,3⦊is_true = std::env::args().len() == 1; let mut countdown = 0; if is_true⦉@0,1,2,3 @4⦊{ @0⦊fn main() { +2:9-2:12: @0[2]: FakeRead(ForLet(None), _1)">@0⦊fn main() { let num = 9⦉@0; +2:9-2:12: @0[2]: FakeRead(ForLet(None), _1)"> let num = 9⦉@0; while @1,2⦊num >= 10⦉@1,2 @3,5⦊{ +3:11-3:20: @2[5]: FakeRead(ForMatchedPlace(None), _3)">@1,2⦊num >= 10⦉@1,2 @3,5⦊{ }⦉@3,5 }@4⦊⦉@4
diff --git a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.while_early_ret/while_early_ret.main.-------.InstrumentCoverage.0.html b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.while_early_ret/while_early_ret.main.-------.InstrumentCoverage.0.html index fcb5418e1d0cf..2a545efb855cb 100644 --- a/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.while_early_ret/while_early_ret.main.-------.InstrumentCoverage.0.html +++ b/src/test/run-make-fulldeps/coverage-spanview/expected_mir_dump.while_early_ret/while_early_ret.main.-------.InstrumentCoverage.0.html @@ -70,19 +70,19 @@
@0⦊fn main() -> Result<(),u8> { +5:9-5:22: @0[2]: FakeRead(ForLet(None), _1)">@0⦊fn main() -> Result<(),u8> { let mut countdown = 10⦉@0; +5:9-5:22: @0[2]: FakeRead(ForLet(None), _1)"> let mut countdown = 10⦉@0; while @1,2⦊countdown +7:9-9:10: @2[5]: FakeRead(ForMatchedPlace(None), _4)">@1,2⦊countdown > +7:9-9:10: @2[5]: FakeRead(ForMatchedPlace(None), _4)"> > 0⦉@1,2 +7:9-9:10: @2[5]: FakeRead(ForMatchedPlace(None), _4)"> 0⦉@1,2 { if @0,1,2⦊fn main() ⦉@0,1,2{ - let @0,1,2⦊mut generator⦉@0,1,2 = || { + let @0,1,2⦊mut generator⦉@0,1,2 = || { yield 1; return "foo" }; @@ -79,13 +79,13 @@ 13:11-13:35: @0.Call: _4 = std::pin::Pin::<&mut [generator@../coverage/yield.rs:8:25: 11:6 {i32, ()}]>::new(move _5) -> [return: bb1, unwind: bb26] 13:43-13:45: @1[2]: _6 = () 13:11-13:46: @1.Call: _3 = <[generator@../coverage/yield.rs:8:25: 11:6 {i32, ()}] as std::ops::Generator>::resume(move _4, move _6) -> [return: bb2, unwind: bb26] -13:11-13:46: @2[2]: FakeRead(ForMatchedPlace, _3) +13:11-13:46: @2[2]: FakeRead(ForMatchedPlace(None), _3) 14:9-14:35: @2[3]: _7 = discriminant(_3)">@0,1,2⦊Pin::new(&mut generator).resume(()) { GeneratorState::Yielded(1)⦉@0,1,2 => @4,6,7,8⦊{}⦉@4,6,7,8 _ => @5⦊panic!("unexpected value from resume")⦉@5, } @@ -93,12 +93,12 @@ 17:11-17:35: @6.Call: _11 = std::pin::Pin::<&mut [generator@../coverage/yield.rs:8:25: 11:6 {i32, ()}]>::new(move _12) -> [return: bb7, unwind: bb26] 17:43-17:45: @7[2]: _13 = () 17:11-17:46: @7.Call: _10 = <[generator@../coverage/yield.rs:8:25: 11:6 {i32, ()}] as std::ops::Generator>::resume(move _11, move _13) -> [return: bb8, unwind: bb26] -17:11-17:46: @8[2]: FakeRead(ForMatchedPlace, _10)">@4,6,7,8⦊Pin::new(&mut generator).resume(())⦉@4,6,7,8 { +17:11-17:46: @8[2]: FakeRead(ForMatchedPlace(None), _10)">@4,6,7,8⦊Pin::new(&mut generator).resume(())⦉@4,6,7,8 { GeneratorState::Complete(@10,11⦊"foo"⦉@10,11) => @12,13,14,15⦊{}⦉@12,13,14,15 _ => @9⦊panic!("unexpected value from resume")⦉@9, } - let @12,13,14,15⦊mut generator⦉@12,13,14,15 = || { + let @12,13,14,15⦊mut generator⦉@12,13,14,15 = || { yield 1; yield 2; yield 3; @@ -109,13 +109,13 @@ 29:11-29:35: @13.Call: _20 = std::pin::Pin::<&mut [generator@../coverage/yield.rs:22:25: 27:6 {i32, ()}]>::new(move _21) -> [return: bb14, unwind: bb26] 29:43-29:45: @14[2]: _22 = () 29:11-29:46: @14.Call: _19 = <[generator@../coverage/yield.rs:22:25: 27:6 {i32, ()}] as std::ops::Generator>::resume(move _20, move _22) -> [return: bb15, unwind: bb26] -29:11-29:46: @15[2]: FakeRead(ForMatchedPlace, _19) +29:11-29:46: @15[2]: FakeRead(ForMatchedPlace(None), _19) 30:9-30:35: @15[3]: _23 = discriminant(_19)">@12,13,14,15⦊Pin::new(&mut generator).resume(()) { GeneratorState::Yielded(1)⦉@12,13,14,15 => @17,19,20,21⦊{}⦉@17,19,20,21 _ => @18⦊panic!("unexpected value from resume")⦉@18, } @@ -123,13 +123,13 @@ 33:11-33:35: @19.Call: _26 = std::pin::Pin::<&mut [generator@../coverage/yield.rs:22:25: 27:6 {i32, ()}]>::new(move _27) -> [return: bb20, unwind: bb26] 33:43-33:45: @20[2]: _28 = () 33:11-33:46: @20.Call: _25 = <[generator@../coverage/yield.rs:22:25: 27:6 {i32, ()}] as std::ops::Generator>::resume(move _26, move _28) -> [return: bb21, unwind: bb26] -33:11-33:46: @21[2]: FakeRead(ForMatchedPlace, _25) +33:11-33:46: @21[2]: FakeRead(ForMatchedPlace(None), _25) 34:9-34:35: @21[3]: _29 = discriminant(_25)">@17,19,20,21⦊Pin::new(&mut generator).resume(()) { GeneratorState::Yielded(2)⦉@17,19,20,21 => @23,25⦊{}⦉@23,25 _ => @24⦊panic!("unexpected value from resume")⦉@24, } diff --git a/src/test/rustdoc-ui/doc-spotlight.fixed b/src/test/rustdoc-ui/doc-spotlight.fixed new file mode 100644 index 0000000000000..6c90aace6891d --- /dev/null +++ b/src/test/rustdoc-ui/doc-spotlight.fixed @@ -0,0 +1,10 @@ +// ignore-tidy-linelength +// check-pass +// run-rustfix + +#![feature(doc_notable_trait)] + +#[doc(notable_trait)] +//~^ WARN unknown `doc` attribute `spotlight` +//~| WARN this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! +trait MyTrait {} diff --git a/src/test/rustdoc-ui/doc-spotlight.rs b/src/test/rustdoc-ui/doc-spotlight.rs new file mode 100644 index 0000000000000..7cea553c4b004 --- /dev/null +++ b/src/test/rustdoc-ui/doc-spotlight.rs @@ -0,0 +1,10 @@ +// ignore-tidy-linelength +// check-pass +// run-rustfix + +#![feature(doc_notable_trait)] + +#[doc(spotlight)] +//~^ WARN unknown `doc` attribute `spotlight` +//~| WARN this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! +trait MyTrait {} diff --git a/src/test/rustdoc-ui/doc-spotlight.stderr b/src/test/rustdoc-ui/doc-spotlight.stderr new file mode 100644 index 0000000000000..e79cdc3d77a80 --- /dev/null +++ b/src/test/rustdoc-ui/doc-spotlight.stderr @@ -0,0 +1,14 @@ +warning: unknown `doc` attribute `spotlight` + --> $DIR/doc-spotlight.rs:7:7 + | +LL | #[doc(spotlight)] + | ^^^^^^^^^ help: use `notable_trait` instead + | + = note: `#[warn(invalid_doc_attributes)]` on by default + = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! + = note: for more information, see issue #82730 + = note: `doc(spotlight)` was renamed to `doc(notable_trait)` + = note: `doc(spotlight)` is now a no-op + +warning: 1 warning emitted + diff --git a/src/test/rustdoc/doc-spotlight.rs b/src/test/rustdoc/doc-notable_trait.rs similarity index 78% rename from src/test/rustdoc/doc-spotlight.rs rename to src/test/rustdoc/doc-notable_trait.rs index ddd46c3c2155f..58a24b855d6e2 100644 --- a/src/test/rustdoc/doc-spotlight.rs +++ b/src/test/rustdoc/doc-notable_trait.rs @@ -1,4 +1,4 @@ -#![feature(doc_spotlight)] +#![feature(doc_notable_trait)] pub struct Wrapper { inner: T, @@ -6,9 +6,9 @@ pub struct Wrapper { impl SomeTrait for Wrapper {} -#[doc(spotlight)] +#[doc(notable_trait)] pub trait SomeTrait { - // @has doc_spotlight/trait.SomeTrait.html + // @has doc_notable_trait/trait.SomeTrait.html // @has - '//code[@class="content"]' 'impl SomeTrait for Wrapper' fn wrap_me(self) -> Wrapper where Self: Sized { Wrapper { @@ -21,7 +21,7 @@ pub struct SomeStruct; impl SomeTrait for SomeStruct {} impl SomeStruct { - // @has doc_spotlight/struct.SomeStruct.html + // @has doc_notable_trait/struct.SomeStruct.html // @has - '//code[@class="content"]' 'impl SomeTrait for SomeStruct' // @has - '//code[@class="content"]' 'impl SomeTrait for Wrapper' pub fn new() -> SomeStruct { @@ -29,7 +29,7 @@ impl SomeStruct { } } -// @has doc_spotlight/fn.bare_fn.html +// @has doc_notable_trait/fn.bare_fn.html // @has - '//code[@class="content"]' 'impl SomeTrait for SomeStruct' pub fn bare_fn() -> SomeStruct { SomeStruct diff --git a/src/test/ui/associated-types/impl-trait-return-missing-constraint.stderr b/src/test/ui/associated-types/impl-trait-return-missing-constraint.stderr index b0e9e33a6c38e..89e05b61fc9d8 100644 --- a/src/test/ui/associated-types/impl-trait-return-missing-constraint.stderr +++ b/src/test/ui/associated-types/impl-trait-return-missing-constraint.stderr @@ -2,13 +2,13 @@ error[E0271]: type mismatch resolving `::Item == i32` --> $DIR/impl-trait-return-missing-constraint.rs:25:13 | LL | fn bar() -> impl Bar { - | -------- the expected opaque type + | -------- the found opaque type ... LL | fn baz() -> impl Bar { - | ^^^^^^^^^^^^^^^^^^^^ expected associated type, found `i32` + | ^^^^^^^^^^^^^^^^^^^^ expected `i32`, found associated type | - = note: expected associated type `::Item` - found type `i32` + = note: expected type `i32` + found associated type `::Item` help: consider constraining the associated type `::Item` to `i32` | LL | fn bar() -> impl Bar { diff --git a/src/test/ui/associated-types/issue-44153.stderr b/src/test/ui/associated-types/issue-44153.stderr index 8ef71087958ca..cafc8ec52ca76 100644 --- a/src/test/ui/associated-types/issue-44153.stderr +++ b/src/test/ui/associated-types/issue-44153.stderr @@ -5,7 +5,7 @@ LL | fn visit() {} | ---------- required by `Visit::visit` ... LL | <() as Visit>::visit(); - | ^^^^^^^^^^^^^^^^^^^^ expected `()`, found `&()` + | ^^^^^^^^^^^^^^^^^^^^ expected `&()`, found `()` | = note: required because of the requirements on the impl of `Visit` for `()` diff --git a/src/test/ui/feature-gates/feature-gate-doc_notable_trait.rs b/src/test/ui/feature-gates/feature-gate-doc_notable_trait.rs new file mode 100644 index 0000000000000..7f3392eadadb3 --- /dev/null +++ b/src/test/ui/feature-gates/feature-gate-doc_notable_trait.rs @@ -0,0 +1,4 @@ +#[doc(notable_trait)] //~ ERROR: `#[doc(notable_trait)]` is experimental +trait SomeTrait {} + +fn main() {} diff --git a/src/test/ui/feature-gates/feature-gate-doc_notable_trait.stderr b/src/test/ui/feature-gates/feature-gate-doc_notable_trait.stderr new file mode 100644 index 0000000000000..1f9bef40c4e73 --- /dev/null +++ b/src/test/ui/feature-gates/feature-gate-doc_notable_trait.stderr @@ -0,0 +1,12 @@ +error[E0658]: `#[doc(notable_trait)]` is experimental + --> $DIR/feature-gate-doc_notable_trait.rs:1:1 + | +LL | #[doc(notable_trait)] + | ^^^^^^^^^^^^^^^^^^^^^ + | + = note: see issue #45040 for more information + = help: add `#![feature(doc_notable_trait)]` to the crate attributes to enable + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0658`. diff --git a/src/test/ui/feature-gates/feature-gate-doc_spotlight.rs b/src/test/ui/feature-gates/feature-gate-doc_spotlight.rs deleted file mode 100644 index 452b45b34456b..0000000000000 --- a/src/test/ui/feature-gates/feature-gate-doc_spotlight.rs +++ /dev/null @@ -1,4 +0,0 @@ -#[doc(spotlight)] //~ ERROR: `#[doc(spotlight)]` is experimental -trait SomeTrait {} - -fn main() {} diff --git a/src/test/ui/feature-gates/feature-gate-doc_spotlight.stderr b/src/test/ui/feature-gates/feature-gate-doc_spotlight.stderr deleted file mode 100644 index 010d74054a412..0000000000000 --- a/src/test/ui/feature-gates/feature-gate-doc_spotlight.stderr +++ /dev/null @@ -1,12 +0,0 @@ -error[E0658]: `#[doc(spotlight)]` is experimental - --> $DIR/feature-gate-doc_spotlight.rs:1:1 - | -LL | #[doc(spotlight)] - | ^^^^^^^^^^^^^^^^^ - | - = note: see issue #45040 for more information - = help: add `#![feature(doc_spotlight)]` to the crate attributes to enable - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0658`. diff --git a/src/test/ui/generator/type-mismatch-signature-deduction.stderr b/src/test/ui/generator/type-mismatch-signature-deduction.stderr index 30e23ea8f650c..3f1f33a3b123f 100644 --- a/src/test/ui/generator/type-mismatch-signature-deduction.stderr +++ b/src/test/ui/generator/type-mismatch-signature-deduction.stderr @@ -16,10 +16,10 @@ error[E0271]: type mismatch resolving `<[generator@$DIR/type-mismatch-signature- --> $DIR/type-mismatch-signature-deduction.rs:5:13 | LL | fn foo() -> impl Generator { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `Result`, found `i32` + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `i32`, found enum `Result` | - = note: expected enum `Result<{integer}, _>` - found type `i32` + = note: expected type `i32` + found enum `Result<{integer}, _>` error: aborting due to 2 previous errors diff --git a/src/test/ui/impl-trait/bound-normalization-fail.stderr b/src/test/ui/impl-trait/bound-normalization-fail.stderr index a7d06c71663de..6958cd97a4ac0 100644 --- a/src/test/ui/impl-trait/bound-normalization-fail.stderr +++ b/src/test/ui/impl-trait/bound-normalization-fail.stderr @@ -11,10 +11,10 @@ error[E0271]: type mismatch resolving ` as FooLike>::Output == $DIR/bound-normalization-fail.rs:27:32 | LL | fn foo_fail() -> impl FooLike { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found associated type + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected associated type, found `()` | - = note: expected type `()` - found associated type `::Assoc` + = note: expected associated type `::Assoc` + found type `()` help: consider constraining the associated type `::Assoc` to `()` | LL | fn foo_fail>() -> impl FooLike { @@ -30,10 +30,10 @@ error[E0271]: type mismatch resolving ` as FooLike>::Output == $DIR/bound-normalization-fail.rs:43:41 | LL | fn foo2_fail<'a, T: Trait<'a>>() -> impl FooLike { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found associated type + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected associated type, found `()` | - = note: expected type `()` - found associated type `>::Assoc` + = note: expected associated type `>::Assoc` + found type `()` help: consider constraining the associated type `>::Assoc` to `()` | LL | fn foo2_fail<'a, T: Trait<'a, Assoc = ()>>() -> impl FooLike { diff --git a/src/test/ui/impl-trait/equality2.stderr b/src/test/ui/impl-trait/equality2.stderr index 1443b76048b32..3318866c52cf9 100644 --- a/src/test/ui/impl-trait/equality2.stderr +++ b/src/test/ui/impl-trait/equality2.stderr @@ -35,8 +35,10 @@ LL | let _: i32 = Leak::leak(hide(0_i32)); | = note: expected type `i32` found associated type `::T` - = help: consider constraining the associated type `::T` to `i32` - = note: for more information, visit https://doc.rust-lang.org/book/ch19-03-advanced-traits.html +help: consider constraining the associated type `::T` to `i32` + | +LL | fn hide(x: T) -> impl Foo { + | ^^^^^^^^^ error[E0308]: mismatched types --> $DIR/equality2.rs:38:10 diff --git a/src/test/ui/impl-trait/issues/issue-70877.full_tait.stderr b/src/test/ui/impl-trait/issues/issue-70877.full_tait.stderr index bd4d4fdf2a6b4..8e42b9d46db39 100644 --- a/src/test/ui/impl-trait/issues/issue-70877.full_tait.stderr +++ b/src/test/ui/impl-trait/issues/issue-70877.full_tait.stderr @@ -2,13 +2,13 @@ error[E0271]: type mismatch resolving `::Item == Box<(dyn for<' --> $DIR/issue-70877.rs:11:12 | LL | type FooRet = impl std::fmt::Debug; - | -------------------- the expected opaque type + | -------------------- the found opaque type ... LL | type Foo = impl Iterator; - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected opaque type, found enum `Option` + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `Option`, found opaque type | - = note: expected struct `Box<(dyn for<'r> Fn(&'r (dyn ToString + 'r)) -> impl Debug + 'static)>` - found struct `Box<(dyn for<'r> Fn(&'r (dyn ToString + 'r)) -> Option + 'static)>` + = note: expected struct `Box<(dyn for<'r> Fn(&'r (dyn ToString + 'r)) -> Option + 'static)>` + found struct `Box<(dyn for<'r> Fn(&'r (dyn ToString + 'r)) -> impl Debug + 'static)>` error: aborting due to previous error diff --git a/src/test/ui/impl-trait/issues/issue-70877.min_tait.stderr b/src/test/ui/impl-trait/issues/issue-70877.min_tait.stderr index bd4d4fdf2a6b4..8e42b9d46db39 100644 --- a/src/test/ui/impl-trait/issues/issue-70877.min_tait.stderr +++ b/src/test/ui/impl-trait/issues/issue-70877.min_tait.stderr @@ -2,13 +2,13 @@ error[E0271]: type mismatch resolving `::Item == Box<(dyn for<' --> $DIR/issue-70877.rs:11:12 | LL | type FooRet = impl std::fmt::Debug; - | -------------------- the expected opaque type + | -------------------- the found opaque type ... LL | type Foo = impl Iterator; - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected opaque type, found enum `Option` + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `Option`, found opaque type | - = note: expected struct `Box<(dyn for<'r> Fn(&'r (dyn ToString + 'r)) -> impl Debug + 'static)>` - found struct `Box<(dyn for<'r> Fn(&'r (dyn ToString + 'r)) -> Option + 'static)>` + = note: expected struct `Box<(dyn for<'r> Fn(&'r (dyn ToString + 'r)) -> Option + 'static)>` + found struct `Box<(dyn for<'r> Fn(&'r (dyn ToString + 'r)) -> impl Debug + 'static)>` error: aborting due to previous error diff --git a/src/test/ui/impl-trait/projection-mismatch-in-impl-where-clause.rs b/src/test/ui/impl-trait/projection-mismatch-in-impl-where-clause.rs new file mode 100644 index 0000000000000..b4fd6b3e74364 --- /dev/null +++ b/src/test/ui/impl-trait/projection-mismatch-in-impl-where-clause.rs @@ -0,0 +1,20 @@ +pub trait Super { + type Assoc; +} + +impl Super for () { + type Assoc = u8; +} + +pub trait Test {} + +impl Test for T where T: Super {} + +fn test() -> impl Test { + //~^ERROR type mismatch resolving `<() as Super>::Assoc == ()` + () +} + +fn main() { + let a = test(); +} diff --git a/src/test/ui/impl-trait/projection-mismatch-in-impl-where-clause.stderr b/src/test/ui/impl-trait/projection-mismatch-in-impl-where-clause.stderr new file mode 100644 index 0000000000000..d1956a9afb809 --- /dev/null +++ b/src/test/ui/impl-trait/projection-mismatch-in-impl-where-clause.stderr @@ -0,0 +1,11 @@ +error[E0271]: type mismatch resolving `<() as Super>::Assoc == ()` + --> $DIR/projection-mismatch-in-impl-where-clause.rs:13:14 + | +LL | fn test() -> impl Test { + | ^^^^^^^^^ expected `()`, found `u8` + | + = note: required because of the requirements on the impl of `Test` for `()` + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0271`. diff --git a/src/test/ui/issues/issue-33941.stderr b/src/test/ui/issues/issue-33941.stderr index e91dae08b3a33..043658c9508f3 100644 --- a/src/test/ui/issues/issue-33941.stderr +++ b/src/test/ui/issues/issue-33941.stderr @@ -11,10 +11,10 @@ error[E0271]: type mismatch resolving ` $DIR/issue-33941.rs:4:14 | LL | for _ in HashMap::new().iter().cloned() {} - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected tuple, found reference + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected reference, found tuple | - = note: expected tuple `(&_, &_)` - found reference `&_` + = note: expected reference `&_` + found tuple `(&_, &_)` = note: required because of the requirements on the impl of `Iterator` for `Cloned>` = note: required because of the requirements on the impl of `IntoIterator` for `Cloned>` = note: required by `into_iter` @@ -23,10 +23,10 @@ error[E0271]: type mismatch resolving ` $DIR/issue-33941.rs:4:14 | LL | for _ in HashMap::new().iter().cloned() {} - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected tuple, found reference + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected reference, found tuple | - = note: expected tuple `(&_, &_)` - found reference `&_` + = note: expected reference `&_` + found tuple `(&_, &_)` = note: required because of the requirements on the impl of `Iterator` for `Cloned>` = note: required by `std::iter::Iterator::next` diff --git a/src/test/ui/issues/issue-39970.stderr b/src/test/ui/issues/issue-39970.stderr index 6f342b459c076..8ecde9d1e68e1 100644 --- a/src/test/ui/issues/issue-39970.stderr +++ b/src/test/ui/issues/issue-39970.stderr @@ -5,7 +5,7 @@ LL | fn visit() {} | ---------- required by `Visit::visit` ... LL | <() as Visit>::visit(); - | ^^^^^^^^^^^^^^^^^^^^ expected `&()`, found `()` + | ^^^^^^^^^^^^^^^^^^^^ expected `()`, found `&()` | = note: required because of the requirements on the impl of `Visit` for `()` diff --git a/src/test/ui/macros/macro-or-patterns-back-compat.fixed b/src/test/ui/macros/macro-or-patterns-back-compat.fixed new file mode 100644 index 0000000000000..60ec0f7430de3 --- /dev/null +++ b/src/test/ui/macros/macro-or-patterns-back-compat.fixed @@ -0,0 +1,26 @@ +// ignore-tidy-linelength +// run-rustfix + +#![feature(edition_macro_pats)] +#![deny(or_patterns_back_compat)] +#![allow(unused_macros)] +macro_rules! foo { ($x:pat2015 | $y:pat) => {} } //~ ERROR the meaning of the pat fragment specific is changing in Rust 2021, which may affect this macro +macro_rules! bar { ($($x:pat2015)+ | $($y:pat)+) => {} } //~ ERROR the meaning of the pat fragment specific is changing in Rust 2021, which may affect this macro +macro_rules! baz { ($x:pat2015 | $y:pat2015) => {} } // should be ok +macro_rules! qux { ($x:pat2015 | $y:pat) => {} } // should be ok +macro_rules! ogg { ($x:pat2015 | $y:pat2015) => {} } //~ ERROR the meaning of the pat fragment specific is changing in Rust 2021, which may affect this macro +macro_rules! match_any { + ( $expr:expr , $( $( $pat:pat2015 )|+ => $expr_arm:expr ),+ ) => { //~ ERROR the meaning of the pat fragment specific is changing in Rust 2021, which may affect this macro + match $expr { + $( + $( $pat => $expr_arm, )+ + )+ + } + }; +} + +fn main() { + let result: Result = Err(42); + let int: i64 = match_any!(result, Ok(i) | Err(i) => i.into()); + assert_eq!(int, 42); +} diff --git a/src/test/ui/macros/macro-or-patterns-back-compat.rs b/src/test/ui/macros/macro-or-patterns-back-compat.rs new file mode 100644 index 0000000000000..dc9e8595ca291 --- /dev/null +++ b/src/test/ui/macros/macro-or-patterns-back-compat.rs @@ -0,0 +1,26 @@ +// ignore-tidy-linelength +// run-rustfix + +#![feature(edition_macro_pats)] +#![deny(or_patterns_back_compat)] +#![allow(unused_macros)] +macro_rules! foo { ($x:pat | $y:pat) => {} } //~ ERROR the meaning of the pat fragment specific is changing in Rust 2021, which may affect this macro +macro_rules! bar { ($($x:pat)+ | $($y:pat)+) => {} } //~ ERROR the meaning of the pat fragment specific is changing in Rust 2021, which may affect this macro +macro_rules! baz { ($x:pat2015 | $y:pat2015) => {} } // should be ok +macro_rules! qux { ($x:pat2015 | $y:pat) => {} } // should be ok +macro_rules! ogg { ($x:pat | $y:pat2015) => {} } //~ ERROR the meaning of the pat fragment specific is changing in Rust 2021, which may affect this macro +macro_rules! match_any { + ( $expr:expr , $( $( $pat:pat )|+ => $expr_arm:expr ),+ ) => { //~ ERROR the meaning of the pat fragment specific is changing in Rust 2021, which may affect this macro + match $expr { + $( + $( $pat => $expr_arm, )+ + )+ + } + }; +} + +fn main() { + let result: Result = Err(42); + let int: i64 = match_any!(result, Ok(i) | Err(i) => i.into()); + assert_eq!(int, 42); +} diff --git a/src/test/ui/macros/macro-or-patterns-back-compat.stderr b/src/test/ui/macros/macro-or-patterns-back-compat.stderr new file mode 100644 index 0000000000000..630a11c17345d --- /dev/null +++ b/src/test/ui/macros/macro-or-patterns-back-compat.stderr @@ -0,0 +1,32 @@ +error: the meaning of the pat fragment specific is changing in Rust 2021, which may affect this macro + --> $DIR/macro-or-patterns-back-compat.rs:7:21 + | +LL | macro_rules! foo { ($x:pat | $y:pat) => {} } + | ^^^^^^ help: use pat2015 to preserve semantics: `$x:pat2015` + | +note: the lint level is defined here + --> $DIR/macro-or-patterns-back-compat.rs:5:9 + | +LL | #![deny(or_patterns_back_compat)] + | ^^^^^^^^^^^^^^^^^^^^^^^ + +error: the meaning of the pat fragment specific is changing in Rust 2021, which may affect this macro + --> $DIR/macro-or-patterns-back-compat.rs:8:23 + | +LL | macro_rules! bar { ($($x:pat)+ | $($y:pat)+) => {} } + | ^^^^^^ help: use pat2015 to preserve semantics: `$x:pat2015` + +error: the meaning of the pat fragment specific is changing in Rust 2021, which may affect this macro + --> $DIR/macro-or-patterns-back-compat.rs:11:21 + | +LL | macro_rules! ogg { ($x:pat | $y:pat2015) => {} } + | ^^^^^^ help: use pat2015 to preserve semantics: `$x:pat2015` + +error: the meaning of the pat fragment specific is changing in Rust 2021, which may affect this macro + --> $DIR/macro-or-patterns-back-compat.rs:13:26 + | +LL | ( $expr:expr , $( $( $pat:pat )|+ => $expr_arm:expr ),+ ) => { + | ^^^^^^^^ help: use pat2015 to preserve semantics: `$pat:pat2015` + +error: aborting due to 4 previous errors + diff --git a/src/test/ui/mir/issue-83499-input-output-iteration-ice.rs b/src/test/ui/mir/issue-83499-input-output-iteration-ice.rs new file mode 100644 index 0000000000000..4d404d015ec0b --- /dev/null +++ b/src/test/ui/mir/issue-83499-input-output-iteration-ice.rs @@ -0,0 +1,10 @@ +// Test that when in MIR the amount of local_decls and amount of normalized_input_tys don't match +// that an out-of-bounds access does not occur. +#![feature(c_variadic)] + +fn main() {} + +fn foo(_: Bar, ...) -> impl {} +//~^ ERROR only foreign or `unsafe extern "C" functions may be C-variadic +//~| ERROR cannot find type `Bar` in this scope +//~| ERROR at least one trait must be specified diff --git a/src/test/ui/mir/issue-83499-input-output-iteration-ice.stderr b/src/test/ui/mir/issue-83499-input-output-iteration-ice.stderr new file mode 100644 index 0000000000000..eb172684899cf --- /dev/null +++ b/src/test/ui/mir/issue-83499-input-output-iteration-ice.stderr @@ -0,0 +1,21 @@ +error: only foreign or `unsafe extern "C" functions may be C-variadic + --> $DIR/issue-83499-input-output-iteration-ice.rs:7:16 + | +LL | fn foo(_: Bar, ...) -> impl {} + | ^^^ + +error: at least one trait must be specified + --> $DIR/issue-83499-input-output-iteration-ice.rs:7:24 + | +LL | fn foo(_: Bar, ...) -> impl {} + | ^^^^ + +error[E0412]: cannot find type `Bar` in this scope + --> $DIR/issue-83499-input-output-iteration-ice.rs:7:11 + | +LL | fn foo(_: Bar, ...) -> impl {} + | ^^^ not found in this scope + +error: aborting due to 3 previous errors + +For more information about this error, try `rustc --explain E0412`. diff --git a/src/test/ui/type-alias-impl-trait/issue-63279.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-63279.full_tait.stderr index f544f61df97f3..53a0016c08eb5 100644 --- a/src/test/ui/type-alias-impl-trait/issue-63279.full_tait.stderr +++ b/src/test/ui/type-alias-impl-trait/issue-63279.full_tait.stderr @@ -11,10 +11,10 @@ error[E0271]: type mismatch resolving `<[closure@$DIR/issue-63279.rs:11:5: 11:28 --> $DIR/issue-63279.rs:8:16 | LL | type Closure = impl FnOnce(); - | ^^^^^^^^^^^^^ expected opaque type, found `()` + | ^^^^^^^^^^^^^ expected `()`, found opaque type | - = note: expected opaque type `impl FnOnce<()>` - found unit type `()` + = note: expected unit type `()` + found opaque type `impl FnOnce<()>` error: aborting due to previous error; 1 warning emitted diff --git a/src/test/ui/type-alias-impl-trait/issue-63279.min_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-63279.min_tait.stderr index bdf414d0badd3..be386ab90ea00 100644 --- a/src/test/ui/type-alias-impl-trait/issue-63279.min_tait.stderr +++ b/src/test/ui/type-alias-impl-trait/issue-63279.min_tait.stderr @@ -11,10 +11,10 @@ error[E0271]: type mismatch resolving `<[closure@$DIR/issue-63279.rs:11:5: 11:28 --> $DIR/issue-63279.rs:8:16 | LL | type Closure = impl FnOnce(); - | ^^^^^^^^^^^^^ expected opaque type, found `()` + | ^^^^^^^^^^^^^ expected `()`, found opaque type | - = note: expected opaque type `impl FnOnce<()>` - found unit type `()` + = note: expected unit type `()` + found opaque type `impl FnOnce<()>` error: aborting due to 2 previous errors diff --git a/src/tools/clippy/clippy_utils/src/qualify_min_const_fn.rs b/src/tools/clippy/clippy_utils/src/qualify_min_const_fn.rs index 1391f7505e27c..dac4d93499dc2 100644 --- a/src/tools/clippy/clippy_utils/src/qualify_min_const_fn.rs +++ b/src/tools/clippy/clippy_utils/src/qualify_min_const_fn.rs @@ -212,7 +212,7 @@ fn check_statement(tcx: TyCtxt<'tcx>, body: &Body<'tcx>, def_id: DefId, statemen check_rvalue(tcx, body, def_id, rval, span) } - StatementKind::FakeRead(_, place) | + StatementKind::FakeRead(box (_, place)) => check_place(tcx, *place, span, body), // just an assignment StatementKind::SetDiscriminant { place, .. } => check_place(tcx, **place, span, body),