While this warns about unsigned negation:
This does not:
let x = -1;
let y : u8 = x;
This especially egregious in places like range expressions where it can cause a loop to not run at all when the lower bound is negative (and therefore becomes a large unsigned integer).