Skip to content

Commit

Permalink
Add UI test for issue 74933
Browse files Browse the repository at this point in the history
  • Loading branch information
nbdd0121 committed Jul 31, 2020
1 parent 2cfcc0c commit 000f5cd
Showing 1 changed file with 38 additions and 0 deletions.
38 changes: 38 additions & 0 deletions src/test/ui/typeck/issue-74933.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
// check-pass
//
// rust-lang/rust#74933: Lifetime error when indexing with borrowed index

use std::ops::{Index, IndexMut};

struct S(V);
struct K<'a>(&'a ());
struct V;

impl<'a> Index<&'a K<'a>> for S {
type Output = V;

fn index(&self, _: &'a K<'a>) -> &V {
&self.0
}
}

impl<'a> IndexMut<&'a K<'a>> for S {
fn index_mut(&mut self, _: &'a K<'a>) -> &mut V {
&mut self.0
}
}

impl V {
fn foo(&mut self) {}
}

fn test(s: &mut S, k: &K<'_>) {
s[k] = V;
s[k].foo();
}

fn main() {
let mut s = S(V);
let k = K(&());
test(&mut s, &k);
}

0 comments on commit 000f5cd

Please sign in to comment.