@@ -70,11 +70,11 @@ fn parse_repr(cx: &mut AcceptContext<'_, '_>, param: &MetaItemParser) -> Option<
7070 match param. path ( ) . word_sym ( ) {
7171 Some ( sym:: align) => {
7272 let l = cx. expect_list ( param. args ( ) , param. span ( ) ) ?;
73- parse_repr_align ( cx, l, param . span ( ) , AlignKind :: Align )
73+ parse_repr_align ( cx, l, AlignKind :: Align )
7474 }
7575 Some ( sym:: packed) => match param. args ( ) {
7676 ArgParser :: NoArgs => Some ( ReprPacked ( Align :: ONE ) ) ,
77- ArgParser :: List ( l) => parse_repr_align ( cx, l, param . span ( ) , AlignKind :: Packed ) ,
77+ ArgParser :: List ( l) => parse_repr_align ( cx, l, AlignKind :: Packed ) ,
7878 ArgParser :: NameValue ( _) => {
7979 cx. adcx ( ) . expected_list_or_no_args ( param. span ( ) ) ;
8080 None
@@ -131,44 +131,17 @@ enum AlignKind {
131131}
132132
133133fn parse_repr_align (
134- cx : & AcceptContext < ' _ , ' _ > ,
134+ cx : & mut AcceptContext < ' _ , ' _ > ,
135135 list : & MetaItemListParser ,
136- param_span : Span ,
137136 align_kind : AlignKind ,
138137) -> Option < ReprAttr > {
139- use AlignKind :: * ;
140-
141138 let Some ( align) = list. as_single ( ) else {
142- match align_kind {
143- Packed => {
144- cx. emit_err ( session_diagnostics:: IncorrectReprFormatPackedOneOrZeroArg {
145- span : param_span,
146- } ) ;
147- }
148- Align => {
149- cx. emit_err ( session_diagnostics:: IncorrectReprFormatAlignOneArg {
150- span : param_span,
151- } ) ;
152- }
153- }
154-
139+ cx. adcx ( ) . expected_single_argument ( list. span , list. len ( ) ) ;
155140 return None ;
156141 } ;
157142
158143 let Some ( lit) = align. as_lit ( ) else {
159- match align_kind {
160- Packed => {
161- cx. emit_err ( session_diagnostics:: IncorrectReprFormatPackedExpectInteger {
162- span : align. span ( ) ,
163- } ) ;
164- }
165- Align => {
166- cx. emit_err ( session_diagnostics:: IncorrectReprFormatExpectInteger {
167- span : align. span ( ) ,
168- } ) ;
169- }
170- }
171-
144+ cx. adcx ( ) . expected_integer_literal ( align. span ( ) ) ;
172145 return None ;
173146 } ;
174147
@@ -178,12 +151,8 @@ fn parse_repr_align(
178151 AlignKind :: Align => ReprAttr :: ReprAlign ( literal) ,
179152 } ) ,
180153 Err ( message) => {
181- cx. emit_err ( session_diagnostics:: InvalidReprGeneric {
154+ cx. emit_err ( session_diagnostics:: InvalidAlignmentValue {
182155 span : lit. span ,
183- repr_arg : match align_kind {
184- Packed => "packed" . to_string ( ) ,
185- Align => "align" . to_string ( ) ,
186- } ,
187156 error_part : message,
188157 } ) ;
189158 None
@@ -237,10 +206,7 @@ impl RustcAlignParser {
237206 } ;
238207
239208 let Some ( lit) = align. as_lit ( ) else {
240- cx. emit_err ( session_diagnostics:: IncorrectReprFormatExpectInteger {
241- span : align. span ( ) ,
242- } ) ;
243-
209+ cx. adcx ( ) . expected_integer_literal ( align. span ( ) ) ;
244210 return ;
245211 } ;
246212
0 commit comments