eval_const_expr always requires the arguments of a binary op to have the same type, which needn't be true for shift operators. Forcing eval_const_expr to be called on such a shift triggers a compiler failure.
enum bs { thing = 5 >> 1u }
fn main() {
log(error, thing as int);
}