Здравствуйте, T4r4sB, Вы писали:
TB>Напомню что параметры для вызова функции всегда считаются слева направо. Это важно.
начал вас понимать, похоже. Только тут всё же немного не то. У нас
один параметр в функции (и как раз не важно откуда считаются параметры). Только вызываем каскадно. Т.е.
let last = nums.len() - 1;
let slice = nums.index_mut(1..last);
foo(&mut slice);
и этот код вполне валиден. Короче, главный мой посыл: len вызывается
до получения мутабельной ссылки, а не
после. Нельзя получить slice без расчёта last.
Если бы было что-то вроде
foo(&mut nums, nums.len());
я бы даже согласился с такими доводами, хотя и то, не факт, что это мои проблемы разруливать здесь зависимости.