about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/librustc_attr/build.rs3
-rw-r--r--src/librustc_attr/builtin.rs7
2 files changed, 7 insertions, 3 deletions
diff --git a/src/librustc_attr/build.rs b/src/librustc_attr/build.rs
index d230ba91039..863f2b7337b 100644
--- a/src/librustc_attr/build.rs
+++ b/src/librustc_attr/build.rs
@@ -1,4 +1,5 @@
 fn main() {
     println!("cargo:rerun-if-changed=build.rs");
-    println!("cargo:rerun-if-env-changed=CFG_VERSION");
+    println!("cargo:rerun-if-env-changed=CFG_RELEASE");
+    println!("cargo:rerun-if-env-changed=CFG_RELEASE_CHANNEL");
 }
diff --git a/src/librustc_attr/builtin.rs b/src/librustc_attr/builtin.rs
index ce38e3f5f4e..a592bbc2bf9 100644
--- a/src/librustc_attr/builtin.rs
+++ b/src/librustc_attr/builtin.rs
@@ -652,9 +652,12 @@ pub fn eval_condition(
                     return false;
                 }
             };
-            let version = Version::parse(env!("CFG_VERSION")).unwrap();
+            let channel = env!("CFG_RELEASE_CHANNEL");
+            let nightly = channel == "nightly" || channel == "dev";
+            let rustc_version = Version::parse(env!("CFG_RELEASE")).unwrap();
 
-            version >= min_version
+            // See https://github.com/rust-lang/rust/issues/64796#issuecomment-625474439 for details
+            if nightly { rustc_version > min_version } else { rustc_version >= min_version }
         }
         ast::MetaItemKind::List(ref mis) => {
             for mi in mis.iter() {