Skip to content

Commit

Permalink
Add test for issue-44405
Browse files Browse the repository at this point in the history
  • Loading branch information
JohnTitor committed Aug 8, 2019
1 parent 642ee70 commit 55f15d7
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 0 deletions.
22 changes: 22 additions & 0 deletions src/test/ui/issues/issue-44405.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
use std::ops::Index;

struct Test;
struct Container(Test);

impl Test {
fn test(&mut self) {}
}

impl<'a> Index<&'a bool> for Container {
type Output = Test;

fn index(&self, _index: &'a bool) -> &Test {
&self.0
}
}

fn main() {
let container = Container(Test);
let mut val = true;
container[&mut val].test(); //~ ERROR: cannot borrow data
}
11 changes: 11 additions & 0 deletions src/test/ui/issues/issue-44405.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
error[E0596]: cannot borrow data in an index of `Container` as mutable
--> $DIR/issue-44405.rs:21:5
|
LL | container[&mut val].test();
| ^^^^^^^^^^^^^^^^^^^ cannot borrow as mutable
|
= help: trait `IndexMut` is required to modify indexed content, but it is not implemented for `Container`

error: aborting due to previous error

For more information about this error, try `rustc --explain E0596`.

0 comments on commit 55f15d7

Please sign in to comment.