Quoting the edition-guide:
Therefore, if you’re using Rust 2015, and one of your dependencies uses Rust 2018, it all works just fine. The opposite situation works as well.
Just to be clear: most features will be available on all editions. People using Rust 2015 will continue to see improvements as new stable releases are made.
I’m having a hard time wrapping my head around how this will work. If a new feature is added in rust version X (where X is from the Rust 2018 edition), how will the rust compiler in version X-1 (where X-n is from the Rust 2015 edition) know how to compile this code?
To test this out, I created a dependency that opted-in to rust 2018 (via the instructions in the edition-guide), and then tried to depend on it from Rust 2015 (rustc 1.26.1) and I got the following error:
error: failed to load source for a dependency on `mydep`
Caused by:
unknown cargo feature `edition`
Given the first thing I quoted from the edition-guide, I thought this might have [magically] worked. I suspect I have some fundamental misunderstanding (and so I’d like to see the edition-guide do a better job at explaining these compatibility rules)