rustc_attr_parsing/attributes/
lint_helpers.rs

1use rustc_attr_data_structures::AttributeKind;
2use rustc_span::{Span, Symbol, sym};
3
4use crate::attributes::{NoArgsAttributeParser, OnDuplicate};
5use crate::context::Stage;
6
7pub(crate) struct AsPtrParser;
8impl<S: Stage> NoArgsAttributeParser<S> for AsPtrParser {
9    const PATH: &[Symbol] = &[sym::rustc_as_ptr];
10    const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Error;
11    const CREATE: fn(Span) -> AttributeKind = AttributeKind::AsPtr;
12}
13
14pub(crate) struct PubTransparentParser;
15impl<S: Stage> NoArgsAttributeParser<S> for PubTransparentParser {
16    const PATH: &[Symbol] = &[sym::rustc_pub_transparent];
17    const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Error;
18    const CREATE: fn(Span) -> AttributeKind = AttributeKind::PubTransparent;
19}
20
21pub(crate) struct PassByValueParser;
22impl<S: Stage> NoArgsAttributeParser<S> for PassByValueParser {
23    const PATH: &[Symbol] = &[sym::rustc_pass_by_value];
24    const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Error;
25    const CREATE: fn(Span) -> AttributeKind = AttributeKind::PassByValue;
26}