Skip to content

Commit

Permalink
Prefer #![feature(bind_by_move_pattern_guards)] over `-Z disable_as…
Browse files Browse the repository at this point in the history
…t_check_for_mutation_in_guard`
  • Loading branch information
pnkfelix committed Sep 28, 2018
1 parent d623ec6 commit f9ff7b7
Show file tree
Hide file tree
Showing 5 changed files with 5 additions and 13 deletions.
2 changes: 0 additions & 2 deletions src/librustc/session/config.rs
Expand Up @@ -1320,8 +1320,6 @@ options! {DebuggingOptions, DebuggingSetter, basic_debugging_options,
useful for profiling / PGO."),
relro_level: Option<RelroLevel> = (None, parse_relro_level, [TRACKED],
"choose which RELRO level to use"),
disable_ast_check_for_mutation_in_guard: bool = (false, parse_bool, [UNTRACKED],
"skip AST-based mutation-in-guard check (mir-borrowck provides more precise check)"),
nll_subminimal_causes: bool = (false, parse_bool, [UNTRACKED],
"when tracking region error causes, accept subminimal results for faster execution."),
nll_facts: bool = (false, parse_bool, [UNTRACKED],
Expand Down
5 changes: 0 additions & 5 deletions src/librustc/ty/context.rs
Expand Up @@ -1465,11 +1465,6 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> {
/// If true, we should use a naive AST walk to determine if match
/// guard could perform bad mutations (or mutable-borrows).
pub fn check_for_mutation_in_guard_via_ast_walk(self) -> bool {
// If someone passes the `-Z` flag, they're asking for the footgun.
if self.sess.opts.debugging_opts.disable_ast_check_for_mutation_in_guard {
return false;
}

// If someone requests the feature, then be a little more
// careful and ensure that MIR-borrowck is enabled (which can
// happen via edition selection, via `feature(nll)`, or via an
Expand Down
Expand Up @@ -12,12 +12,11 @@
// This test illustrates that under NLL, we can remove our overly
// conservative approach for disallowing mutations of match inputs.

// See further discussion on rust-lang/rust#24535 and
// rust-lang/rfcs#1006.

// compile-flags: -Z disable-ast-check-for-mutation-in-guard
// See further discussion on rust-lang/rust#24535,
// rust-lang/rfcs#1006, and rust-lang/rfcs#107

#![feature(nll)]
#![feature(bind_by_move_pattern_guards)]

fn main() {
rust_issue_24535();
Expand Down
Expand Up @@ -15,8 +15,8 @@
// reject it. But I want to make sure that we continue to reject it
// (under NLL) even when that conservaive check goes away.

// compile-flags: -Z disable-ast-check-for-mutation-in-guard

#![feature(bind_by_move_pattern_guards)]
#![feature(nll)]

fn main() {
Expand Down
2 changes: 1 addition & 1 deletion src/test/ui/nll/match-guards-partially-borrow.rs
Expand Up @@ -5,8 +5,8 @@
// Test that we don't allow mutating the value being matched on in a way that
// changes which patterns it matches, until we have chosen an arm.

// compile-flags: -Zdisable-ast-check-for-mutation-in-guard

#![feature(bind_by_move_pattern_guards)]
#![feature(nll)]

fn ok_mutation_in_guard(mut q: i32) {
Expand Down

0 comments on commit f9ff7b7

Please sign in to comment.