Open
Description
This is a tracking issue for #[cfg(version(..))]
(rust-lang/rfcs#2523).
Steps:
- Implement RFC 2523,
#[cfg(version(..))]
#71314 - Adjust cfg(version) to lang team decision #72001
- Replace version_check dependency with own version parsing code #81259
- cfg(version): treat nightlies as complete #81468
- Document cfg(version) reference#981
- Adjust documentation (see instructions on rustc-guide)
- Stabilization PR (see instructions on rustc-guide)
- Stabilization PR 1: Stabilize
#[cfg(version(...))]
#141137 (closed due to ahas_cfg_version
design consideration) - Stabilization PR 2: Stabilize
#[cfg(version(...))]
, take 2 #141766
- Stabilization PR 1: Stabilize
Unresolved questions:
-
What is
cfg(version(...))
relative to in terms of nightly compilers?We could check against what
rustc --version
says, e.g. nightly being1.40.0
, beta being1.39.0
, and stable being1.38.0
. We could also havecfg(version(...))
at most be relative to the beta compiler. See the RFC for a longer discussion. -
Should we also support
version = "..."
so that crates having a MSRV below whenversion(...)
was stabilized can use the flag? -
Dependency updates cause language changes (src tarballs are vendored without respecting lockfile #79010)