summaryrefslogtreecommitdiffstats
path: root/src/test/ui/cfg/assume-incomplete-release
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:03 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:03 +0000
commit64d98f8ee037282c35007b64c2649055c56af1db (patch)
tree5492bcf97fce41ee1c0b1cc2add283f3e66cdab0 /src/test/ui/cfg/assume-incomplete-release
parentAdding debian version 1.67.1+dfsg1-1. (diff)
downloadrustc-64d98f8ee037282c35007b64c2649055c56af1db.tar.xz
rustc-64d98f8ee037282c35007b64c2649055c56af1db.zip
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/ui/cfg/assume-incomplete-release')
-rw-r--r--src/test/ui/cfg/assume-incomplete-release/assume-incomplete.rs38
-rw-r--r--src/test/ui/cfg/assume-incomplete-release/auxiliary/ver-cfg-rel.rs56
2 files changed, 0 insertions, 94 deletions
diff --git a/src/test/ui/cfg/assume-incomplete-release/assume-incomplete.rs b/src/test/ui/cfg/assume-incomplete-release/assume-incomplete.rs
deleted file mode 100644
index 24d2dc645..000000000
--- a/src/test/ui/cfg/assume-incomplete-release/assume-incomplete.rs
+++ /dev/null
@@ -1,38 +0,0 @@
-// run-pass
-// aux-build:ver-cfg-rel.rs
-// revisions: assume no_assume
-// [assume]compile-flags: -Z assume-incomplete-release
-
-#![feature(cfg_version)]
-
-extern crate ver_cfg_rel;
-
-use ver_cfg_rel::ver_cfg_rel;
-
-#[ver_cfg_rel("-2")]
-fn foo_2() { }
-
-#[ver_cfg_rel("-1")]
-fn foo_1() { }
-
-#[cfg(assume)]
-#[ver_cfg_rel("0")]
-fn foo() { compile_error!("wrong+0") }
-
-#[cfg(no_assume)]
-#[ver_cfg_rel("0")]
-fn foo() { }
-
-#[ver_cfg_rel("1")]
-fn bar() { compile_error!("wrong+1") }
-
-#[ver_cfg_rel("2")]
-fn bar() { compile_error!("wrong+2") }
-
-fn main() {
- foo_2();
- foo_1();
-
- #[cfg(no_assume)]
- foo();
-}
diff --git a/src/test/ui/cfg/assume-incomplete-release/auxiliary/ver-cfg-rel.rs b/src/test/ui/cfg/assume-incomplete-release/auxiliary/ver-cfg-rel.rs
deleted file mode 100644
index 678752702..000000000
--- a/src/test/ui/cfg/assume-incomplete-release/auxiliary/ver-cfg-rel.rs
+++ /dev/null
@@ -1,56 +0,0 @@
-// force-host
-// no-prefer-dynamic
-
-#![crate_type = "proc-macro"]
-
-extern crate proc_macro;
-use proc_macro::{TokenStream, TokenTree as Tt};
-use std::str::FromStr;
-
-// String containing the current version number of the tip, i.e. "1.41.2"
-static VERSION_NUMBER: &str = include_str!("../../../../../version");
-
-#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
-struct Version {
- major: i16,
- minor: i16,
- patch: i16,
-}
-
-fn parse_version(s: &str) -> Option<Version> {
- let mut digits = s.splitn(3, '.');
- let major = digits.next()?.parse().ok()?;
- let minor = digits.next()?.parse().ok()?;
- let patch = digits.next().unwrap_or("0").trim().parse().ok()?;
- Some(Version { major, minor, patch })
-}
-
-#[proc_macro_attribute]
-/// Emits a #[cfg(version)] relative to the current one, so passing
-/// -1 as argument on compiler 1.50 will emit #[cfg(version("1.49.0"))],
-/// while 1 will emit #[cfg(version("1.51.0"))]
-pub fn ver_cfg_rel(attr: TokenStream, input: TokenStream) -> TokenStream {
- let mut v_rel = None;
- for a in attr.into_iter() {
- match a {
- Tt::Literal(l) => {
- let mut s = l.to_string();
- let s = s.trim_matches('"');
- let v: i16 = s.parse().unwrap();
- v_rel = Some(v);
- break;
- },
- _ => panic!("{:?}", a),
- }
- }
- let v_rel = v_rel.unwrap();
-
- let mut v = parse_version(VERSION_NUMBER).unwrap();
- v.minor += v_rel;
-
- let attr_str = format!("#[cfg(version(\"{}.{}.{}\"))]", v.major, v.minor, v.patch);
- let mut res = Vec::<Tt>::new();
- res.extend(TokenStream::from_str(&attr_str).unwrap().into_iter());
- res.extend(input.into_iter());
- res.into_iter().collect()
-}