Hello, today we've found some weird behaviour of array indexing. Here is the [example](https://play.rust-lang.org/?gist=30339eb4524ff5678f1c23ef097af029&version=stable) Code snippet: ```rust fn foo<'a>(a1: &'a mut Bar, a2: &'a mut Bar) { let a = [a1, a2]; for i in 0..42 { let index = i % 2; //a[i % 2].bar(); //<= error a[index].bar(); //<= no error } } ``` The question is, why is the indexing operator behaves depending on whether we evaluate `index` in place or not.