about summary refs log tree commit diff
path: root/compiler/rustc_attr_parsing/src/attributes/crate_level.rs
diff options
context:
space:
mode:
authorOli Scherer <github35764891676564198441@oli-obk.de>2025-09-13 07:09:16 +0000
committerGitHub <noreply@github.com>2025-09-13 07:09:16 +0000
commit8ade141c46ea74b7988e48d26f83b2d24d60a991 (patch)
tree2f810c44d18e82c7d160925dc49c157acbae9116 /compiler/rustc_attr_parsing/src/attributes/crate_level.rs
parentfc7eb3c28d2be162dd32951811ce7852bb1a2f6a (diff)
parent520e45a538a6c047c77785f09fdead3842b7b7ba (diff)
downloadrust-8ade141c46ea74b7988e48d26f83b2d24d60a991.tar.gz
rust-8ade141c46ea74b7988e48d26f83b2d24d60a991.zip
Merge pull request #4584 from rust-lang/rustup-2025-09-13
Automatic Rustup
Diffstat (limited to 'compiler/rustc_attr_parsing/src/attributes/crate_level.rs')
-rw-r--r--compiler/rustc_attr_parsing/src/attributes/crate_level.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/compiler/rustc_attr_parsing/src/attributes/crate_level.rs b/compiler/rustc_attr_parsing/src/attributes/crate_level.rs
index d23a7ae72f8..0b2c05482bf 100644
--- a/compiler/rustc_attr_parsing/src/attributes/crate_level.rs
+++ b/compiler/rustc_attr_parsing/src/attributes/crate_level.rs
@@ -176,3 +176,27 @@ impl<S: Stage> SingleAttributeParser<S> for PatternComplexityLimitParser {
         })
     }
 }
+
+pub(crate) struct NoCoreParser;
+
+impl<S: Stage> NoArgsAttributeParser<S> for NoCoreParser {
+    const PATH: &[Symbol] = &[sym::no_core];
+    const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Warn;
+    // because it's a crate-level attribute, we already warn about it.
+    // Putting target limitations here would give duplicate warnings
+    const ALLOWED_TARGETS: AllowedTargets = AllowedTargets::AllowList(ALL_TARGETS);
+    const CREATE: fn(Span) -> AttributeKind = AttributeKind::NoCore;
+    const TYPE: AttributeType = AttributeType::CrateLevel;
+}
+
+pub(crate) struct NoStdParser;
+
+impl<S: Stage> NoArgsAttributeParser<S> for NoStdParser {
+    const PATH: &[Symbol] = &[sym::no_std];
+    const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Warn;
+    // because it's a crate-level attribute, we already warn about it.
+    // Putting target limitations here would give duplicate warnings
+    const ALLOWED_TARGETS: AllowedTargets = AllowedTargets::AllowList(ALL_TARGETS);
+    const CREATE: fn(Span) -> AttributeKind = AttributeKind::NoStd;
+    const TYPE: AttributeType = AttributeType::CrateLevel;
+}