rust/tests/ui/borrowck/issue-46095.rs
2024-02-16 20:02:50 +00:00

30 lines
483 B
Rust

//@ run-pass
struct A;
impl A {
fn take_mutably(&mut self) {}
}
fn identity<T>(t: T) -> T {
t
}
// Issue 46095
// Built-in indexing should be used even when the index is not
// trivially an integer
// Overloaded indexing would cause wrapped to be borrowed mutably
fn main() {
let mut a1 = A;
let mut a2 = A;
let wrapped = [&mut a1, &mut a2];
{
wrapped[0 + 1 - 1].take_mutably();
}
{
wrapped[identity(0)].take_mutably();
}
}