Skip to content

Commit a6bc816

Browse files
committed
Reorder attribute parsers in traits.rs
1 parent 1bdf703 commit a6bc816

File tree

1 file changed

+35
-28
lines changed
  • compiler/rustc_attr_parsing/src/attributes

1 file changed

+35
-28
lines changed

compiler/rustc_attr_parsing/src/attributes/traits.rs

Lines changed: 35 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ use crate::context::{AcceptContext, Stage};
1111
use crate::parser::ArgParser;
1212

1313
pub(crate) struct SkipDuringMethodDispatchParser;
14-
1514
impl<S: Stage> SingleAttributeParser<S> for SkipDuringMethodDispatchParser {
1615
const PATH: &[Symbol] = &[sym::rustc_skip_during_method_dispatch];
1716
const ATTRIBUTE_ORDER: AttributeOrder = AttributeOrder::KeepFirst;
@@ -55,11 +54,27 @@ impl<S: Stage> SingleAttributeParser<S> for SkipDuringMethodDispatchParser {
5554
}
5655
}
5756

58-
pub(crate) struct ConstTraitParser;
59-
impl<S: Stage> NoArgsAttributeParser<S> for ConstTraitParser {
60-
const PATH: &[Symbol] = &[sym::const_trait];
57+
pub(crate) struct ParenSugarParser;
58+
impl<S: Stage> NoArgsAttributeParser<S> for ParenSugarParser {
59+
const PATH: &[Symbol] = &[sym::rustc_paren_sugar];
60+
const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Error;
61+
const CREATE: fn(Span) -> AttributeKind = AttributeKind::ParenSugar;
62+
}
63+
64+
pub(crate) struct TypeConstParser;
65+
impl<S: Stage> NoArgsAttributeParser<S> for TypeConstParser {
66+
const PATH: &[Symbol] = &[sym::type_const];
67+
const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Error;
68+
const CREATE: fn(Span) -> AttributeKind = AttributeKind::TypeConst;
69+
}
70+
71+
// Markers
72+
73+
pub(crate) struct MarkerParser;
74+
impl<S: Stage> NoArgsAttributeParser<S> for MarkerParser {
75+
const PATH: &[Symbol] = &[sym::marker];
6176
const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Warn;
62-
const CREATE: fn(Span) -> AttributeKind = AttributeKind::ConstTrait;
77+
const CREATE: fn(Span) -> AttributeKind = AttributeKind::Marker;
6378
}
6479

6580
pub(crate) struct DenyExplicitImplParser;
@@ -76,20 +91,17 @@ impl<S: Stage> NoArgsAttributeParser<S> for DoNotImplementViaObjectParser {
7691
const CREATE: fn(Span) -> AttributeKind = AttributeKind::DoNotImplementViaObject;
7792
}
7893

79-
pub(crate) struct CoinductiveParser;
80-
impl<S: Stage> NoArgsAttributeParser<S> for CoinductiveParser {
81-
const PATH: &[Symbol] = &[sym::rustc_coinductive];
82-
const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Error;
83-
const CREATE: fn(Span) -> AttributeKind = AttributeKind::Coinductive;
84-
}
94+
// Const traits
8595

86-
pub(crate) struct TypeConstParser;
87-
impl<S: Stage> NoArgsAttributeParser<S> for TypeConstParser {
88-
const PATH: &[Symbol] = &[sym::type_const];
89-
const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Error;
90-
const CREATE: fn(Span) -> AttributeKind = AttributeKind::TypeConst;
96+
pub(crate) struct ConstTraitParser;
97+
impl<S: Stage> NoArgsAttributeParser<S> for ConstTraitParser {
98+
const PATH: &[Symbol] = &[sym::const_trait];
99+
const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Warn;
100+
const CREATE: fn(Span) -> AttributeKind = AttributeKind::ConstTrait;
91101
}
92102

103+
// Specialization
104+
93105
pub(crate) struct SpecializationTraitParser;
94106
impl<S: Stage> NoArgsAttributeParser<S> for SpecializationTraitParser {
95107
const PATH: &[Symbol] = &[sym::rustc_specialization_trait];
@@ -104,11 +116,13 @@ impl<S: Stage> NoArgsAttributeParser<S> for UnsafeSpecializationMarkerParser {
104116
const CREATE: fn(Span) -> AttributeKind = AttributeKind::UnsafeSpecializationMarker;
105117
}
106118

107-
pub(crate) struct MarkerParser;
108-
impl<S: Stage> NoArgsAttributeParser<S> for MarkerParser {
109-
const PATH: &[Symbol] = &[sym::marker];
110-
const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Warn;
111-
const CREATE: fn(Span) -> AttributeKind = AttributeKind::Marker;
119+
// Coherence
120+
121+
pub(crate) struct CoinductiveParser;
122+
impl<S: Stage> NoArgsAttributeParser<S> for CoinductiveParser {
123+
const PATH: &[Symbol] = &[sym::rustc_coinductive];
124+
const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Error;
125+
const CREATE: fn(Span) -> AttributeKind = AttributeKind::Coinductive;
112126
}
113127

114128
pub(crate) struct FundamentalParser;
@@ -117,10 +131,3 @@ impl<S: Stage> NoArgsAttributeParser<S> for FundamentalParser {
117131
const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Error;
118132
const CREATE: fn(Span) -> AttributeKind = |_| AttributeKind::Fundamental;
119133
}
120-
121-
pub(crate) struct ParenSugarParser;
122-
impl<S: Stage> NoArgsAttributeParser<S> for ParenSugarParser {
123-
const PATH: &[Symbol] = &[sym::rustc_paren_sugar];
124-
const ON_DUPLICATE: OnDuplicate<S> = OnDuplicate::Error;
125-
const CREATE: fn(Span) -> AttributeKind = AttributeKind::ParenSugar;
126-
}

0 commit comments

Comments
 (0)