| //@ 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(); | |
| } | |
| } |