From fef827672ddb0df866c77239f3fc034ed98de556 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 1 May 2016 20:18:04 +0200 Subject: borrowck: do not suggest to change "&mut self" to "&mut mut self" Matching the snippet string might not be the cleanest, but matching the AST node instead seems to end in a lot of nested `if let`s... Fixes #31424. --- src/test/compile-fail/issue-31424.rs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/compile-fail/issue-31424.rs (limited to 'src/test') diff --git a/src/test/compile-fail/issue-31424.rs b/src/test/compile-fail/issue-31424.rs new file mode 100644 index 00000000000..262efab22a2 --- /dev/null +++ b/src/test/compile-fail/issue-31424.rs @@ -0,0 +1,30 @@ +// Copyright 2016 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// forbid-output: &mut mut self + +struct Struct; + +impl Struct { + fn foo(&mut self) { + (&mut self).bar(); + //~^ ERROR cannot borrow immutable argument `self` as mutable + // ... and no SUGGESTION that suggests `&mut mut self` + } + + // In this case we could keep the suggestion, but to distinguish the + // two cases is pretty hard. It's an obscure case anyway. + fn bar(self: &mut Self) { + (&mut self).bar(); + //~^ ERROR cannot borrow immutable argument `self` as mutable + } +} + +fn main () {} -- cgit 1.4.1-3-g733a5