diff options
| author | Esteban Küber <esteban@kuber.com.ar> | 2025-08-11 17:02:43 +0000 |
|---|---|---|
| committer | Esteban Küber <esteban@kuber.com.ar> | 2025-08-11 17:02:43 +0000 |
| commit | adccb8d214d7e4a7e87554f289b077fe5fb972ef (patch) | |
| tree | c88b2f0cb07e7ddb9f2a9504b897bf6f6bc2de52 /compiler/rustc_feature | |
| parent | 32ee26c625e8fbb7a3aa56788cbb352f04491964 (diff) | |
| download | rust-adccb8d214d7e4a7e87554f289b077fe5fb972ef.tar.gz rust-adccb8d214d7e4a7e87554f289b077fe5fb972ef.zip | |
Rework `NameValueStr`
Diffstat (limited to 'compiler/rustc_feature')
| -rw-r--r-- | compiler/rustc_feature/src/builtin_attrs.rs | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/compiler/rustc_feature/src/builtin_attrs.rs b/compiler/rustc_feature/src/builtin_attrs.rs index 82a24a5dfb2..ab6b8f92802 100644 --- a/compiler/rustc_feature/src/builtin_attrs.rs +++ b/compiler/rustc_feature/src/builtin_attrs.rs @@ -216,10 +216,10 @@ macro_rules! template { (List: $descr: expr) => { $crate::template!(@ false, Some($descr), &[], None, None) }; (List: $descr: expr, $link: literal) => { $crate::template!(@ false, Some($descr), &[], None, Some($link)) }; (OneOf: $one_of: expr) => { $crate::template!(@ false, None, $one_of, None, None) }; - (NameValueStr: $descr: expr) => { $crate::template!(@ false, None, &[], Some(&[$descr]), None) }; - (NameValueStr: $descr: expr, $link: literal) => { $crate::template!(@ false, None, &[], Some(&[$descr]), Some($link)) }; - (OneOfNameValueStr: $descr: expr) => { $crate::template!(@ false, None, &[], Some($descr), None) }; - (OneOfNameValueStr: $descr: expr, $link: literal) => { $crate::template!(@ false, None, &[], Some($descr), Some($link)) }; + (NameValueStr: [$($descr: literal),* $(,)?]) => { $crate::template!(@ false, None, &[], Some(&[$($descr,)*]), None) }; + (NameValueStr: [$($descr: literal),* $(,)?], $link: literal) => { $crate::template!(@ false, None, &[], Some(&[$($descr,)*]), Some($link)) }; + (NameValueStr: $descr: literal) => { $crate::template!(@ false, None, &[], Some(&[$descr]), None) }; + (NameValueStr: $descr: literal, $link: literal) => { $crate::template!(@ false, None, &[], Some(&[$descr]), Some($link)) }; (Word, List: $descr: expr) => { $crate::template!(@ true, Some($descr), &[], None, None) }; (Word, List: $descr: expr, $link: literal) => { $crate::template!(@ true, Some($descr), &[], None, Some($link)) }; (Word, NameValueStr: $descr: expr) => { $crate::template!(@ true, None, &[], Some(&[$descr]), None) }; @@ -579,7 +579,7 @@ pub static BUILTIN_ATTRIBUTES: &[BuiltinAttribute] = &[ ungated!( crate_type, CrateLevel, template!( - OneOfNameValueStr: &["bin", "lib", "dylib", "cdylib", "rlib", "staticlib", "sdylib", "proc-macro"], + NameValueStr: ["bin", "lib", "dylib", "cdylib", "rlib", "staticlib", "sdylib", "proc-macro"], "https://doc.rust-lang.org/reference/linkage.html" ), DuplicatesOk, EncodeCrossCrate::No, @@ -696,7 +696,7 @@ pub static BUILTIN_ATTRIBUTES: &[BuiltinAttribute] = &[ // Runtime ungated!( windows_subsystem, CrateLevel, - template!(OneOfNameValueStr: &["windows", "console"], "https://doc.rust-lang.org/reference/runtime.html#the-windows_subsystem-attribute"), + template!(NameValueStr: ["windows", "console"], "https://doc.rust-lang.org/reference/runtime.html#the-windows_subsystem-attribute"), FutureWarnFollowing, EncodeCrossCrate::No ), ungated!( // RFC 2070 @@ -1027,7 +1027,7 @@ pub static BUILTIN_ATTRIBUTES: &[BuiltinAttribute] = &[ // ========================================================================== gated!( - linkage, Normal, template!(OneOfNameValueStr: &[ + linkage, Normal, template!(NameValueStr: [ "available_externally", "common", "extern_weak", @@ -1061,7 +1061,7 @@ pub static BUILTIN_ATTRIBUTES: &[BuiltinAttribute] = &[ ), rustc_attr!( rustc_macro_transparency, Normal, - template!(OneOfNameValueStr: &["transparent", "semiopaque", "opaque"]), ErrorFollowing, + template!(NameValueStr: ["transparent", "semiopaque", "opaque"]), ErrorFollowing, EncodeCrossCrate::Yes, "used internally for testing macro hygiene", ), rustc_attr!( |
