Skip to content

since and before for stable versions do not consider the date of nightly build #42

@wmmc88

Description

@wmmc88

According to the README, #[rustversion::since(1.74)] should be

True on that stable release and any later compiler, including beta and nightly.

The key word in this sentence is later. Stable Rust 1.74.0 was released on 2023-11-16, but nightly-2023-09-14 is a nightly that came out more than 2 months before. The following snippet succeeds to compile when it should fail because the nightly is older than 1.74:

#[rustversion::since(1.74)]
fn main() {
   println!("Hello, world!");
}
cargo +nightly-2023-09-13 b
   Compiling rustversion v1.0.14
   Compiling rust-version-test v0.1.0 (D:\git-repos\github\rust-version-test)
    Finished dev [unoptimized + debuginfo] target(s) in 2.26s

Similarly, the below snippet fails to compile on nightly-2023-09-14:

#[rustversion::before(1.74)]
fn main() {
    println!("Hello, world!");
}
cargo +nightly-2023-09-14 b
   Compiling rustversion v1.0.14
   Compiling rust-version-test v0.1.0 (D:\git-repos\github\rust-version-test)
error[E0601]: `main` function not found in crate `rust_version_test`
 --> src\main.rs:4:2
  |
4 | }
  |  ^ consider adding a `main` function to `src\main.rs`

For more information about this error, try `rustc --explain E0601`.
error: could not compile `rust-version-test` (bin "rust-version-test") due to previous error

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions