The issue is this. The workflow for upgrading your codebase is supposed to be
> cargo +beta fix --edition
Run this until your code compiles with no warnings. Now, your code is valid Rust 2015 and Rust 2018. You should be able to add edition = "2018" to your Cargo.toml, and it will build. You may get new warnings, but it should build.
However, the above does not migrate use statements. This means that after running cargo fix, even once you have warnings, the cargo build after adding the edition key does not compile. This means that you’d have to modify all of your use statements by hand. You can do this, but on a project of non-trivial size, it can be difficult. That’s not an accurate impression of what the final workflow should be.
Uniform paths are not part of the edition; what got stabilized is something forward compatible with them, but the decision to enable that has not yet been made.