sync with rust 42deaa5e4