回答:
それはfields再び不変になります。
fields以前は変更可能(let mut fields = …;)として定義されてsort_by_keyいました。これは、インプレースでソートし、ターゲットを変更可能にする必要がある場合に使用されます。著者は、これ以上の変更を明示的に防ぐためにここで選択しました。
ミュータブルバインディングをイミュータブルに「ダウングレード」することは、Rustではかなり一般的です。
これを行うもう1つの一般的な方法は、ブロック式を使用することです。
let fields = {
let mut fields = …;
fields.sort_by_key(…);
fields
};