@@ -17,16 +17,17 @@ fn invalid_type_err(
17
17
ConcatBytesInvalid , ConcatBytesInvalidSuggestion , ConcatBytesNonU8 , ConcatBytesOob ,
18
18
} ;
19
19
let snippet = cx. sess . source_map ( ) . span_to_snippet ( span) . ok ( ) ;
20
+ let dcx = cx. dcx ( ) ;
20
21
match ast:: LitKind :: from_token_lit ( token_lit) {
21
22
Ok ( ast:: LitKind :: CStr ( _, _) ) => {
22
23
// Avoid ambiguity in handling of terminal `NUL` by refusing to
23
24
// concatenate C string literals as bytes.
24
- cx . emit_err ( errors:: ConcatCStrLit { span : span } ) ;
25
+ dcx . emit_err ( errors:: ConcatCStrLit { span : span } ) ;
25
26
}
26
27
Ok ( ast:: LitKind :: Char ( _) ) => {
27
28
let sugg =
28
29
snippet. map ( |snippet| ConcatBytesInvalidSuggestion :: CharLit { span, snippet } ) ;
29
- cx . sess . emit_err ( ConcatBytesInvalid { span, lit_kind : "character" , sugg } ) ;
30
+ dcx . emit_err ( ConcatBytesInvalid { span, lit_kind : "character" , sugg } ) ;
30
31
}
31
32
Ok ( ast:: LitKind :: Str ( _, _) ) => {
32
33
// suggestion would be invalid if we are nested
@@ -35,29 +36,29 @@ fn invalid_type_err(
35
36
} else {
36
37
None
37
38
} ;
38
- cx . emit_err ( ConcatBytesInvalid { span, lit_kind : "string" , sugg } ) ;
39
+ dcx . emit_err ( ConcatBytesInvalid { span, lit_kind : "string" , sugg } ) ;
39
40
}
40
41
Ok ( ast:: LitKind :: Float ( _, _) ) => {
41
- cx . emit_err ( ConcatBytesInvalid { span, lit_kind : "float" , sugg : None } ) ;
42
+ dcx . emit_err ( ConcatBytesInvalid { span, lit_kind : "float" , sugg : None } ) ;
42
43
}
43
44
Ok ( ast:: LitKind :: Bool ( _) ) => {
44
- cx . emit_err ( ConcatBytesInvalid { span, lit_kind : "boolean" , sugg : None } ) ;
45
+ dcx . emit_err ( ConcatBytesInvalid { span, lit_kind : "boolean" , sugg : None } ) ;
45
46
}
46
47
Ok ( ast:: LitKind :: Err ) => { }
47
48
Ok ( ast:: LitKind :: Int ( _, _) ) if !is_nested => {
48
49
let sugg =
49
50
snippet. map ( |snippet| ConcatBytesInvalidSuggestion :: IntLit { span : span, snippet } ) ;
50
- cx . emit_err ( ConcatBytesInvalid { span, lit_kind : "numeric" , sugg } ) ;
51
+ dcx . emit_err ( ConcatBytesInvalid { span, lit_kind : "numeric" , sugg } ) ;
51
52
}
52
53
Ok ( ast:: LitKind :: Int (
53
54
val,
54
55
ast:: LitIntType :: Unsuffixed | ast:: LitIntType :: Unsigned ( ast:: UintTy :: U8 ) ,
55
56
) ) => {
56
57
assert ! ( val > u8 :: MAX . into( ) ) ; // must be an error
57
- cx . emit_err ( ConcatBytesOob { span } ) ;
58
+ dcx . emit_err ( ConcatBytesOob { span } ) ;
58
59
}
59
60
Ok ( ast:: LitKind :: Int ( _, _) ) => {
60
- cx . emit_err ( ConcatBytesNonU8 { span } ) ;
61
+ dcx . emit_err ( ConcatBytesNonU8 { span } ) ;
61
62
}
62
63
Ok ( ast:: LitKind :: ByteStr ( ..) | ast:: LitKind :: Byte ( _) ) => unreachable ! ( ) ,
63
64
Err ( err) => {
@@ -72,10 +73,11 @@ fn handle_array_element(
72
73
missing_literals : & mut Vec < rustc_span:: Span > ,
73
74
expr : & P < rustc_ast:: Expr > ,
74
75
) -> Option < u8 > {
76
+ let dcx = cx. dcx ( ) ;
75
77
match expr. kind {
76
78
ast:: ExprKind :: Array ( _) | ast:: ExprKind :: Repeat ( _, _) => {
77
79
if !* has_errors {
78
- cx . emit_err ( errors:: ConcatBytesArray { span : expr. span , bytestr : false } ) ;
80
+ dcx . emit_err ( errors:: ConcatBytesArray { span : expr. span , bytestr : false } ) ;
79
81
}
80
82
* has_errors = true ;
81
83
None
@@ -89,7 +91,7 @@ fn handle_array_element(
89
91
Ok ( ast:: LitKind :: Byte ( val) ) => Some ( val) ,
90
92
Ok ( ast:: LitKind :: ByteStr ( ..) ) => {
91
93
if !* has_errors {
92
- cx . emit_err ( errors:: ConcatBytesArray { span : expr. span , bytestr : true } ) ;
94
+ dcx . emit_err ( errors:: ConcatBytesArray { span : expr. span , bytestr : true } ) ;
93
95
}
94
96
* has_errors = true ;
95
97
None
@@ -104,7 +106,7 @@ fn handle_array_element(
104
106
} ,
105
107
ast:: ExprKind :: IncludedBytes ( ..) => {
106
108
if !* has_errors {
107
- cx . emit_err ( errors:: ConcatBytesArray { span : expr. span , bytestr : false } ) ;
109
+ dcx . emit_err ( errors:: ConcatBytesArray { span : expr. span , bytestr : false } ) ;
108
110
}
109
111
* has_errors = true ;
110
112
None
@@ -151,7 +153,7 @@ pub fn expand_concat_bytes(
151
153
}
152
154
}
153
155
} else {
154
- cx. emit_err ( errors:: ConcatBytesBadRepeat { span : count. value . span } ) ;
156
+ cx. dcx ( ) . emit_err ( errors:: ConcatBytesBadRepeat { span : count. value . span } ) ;
155
157
}
156
158
}
157
159
& ast:: ExprKind :: Lit ( token_lit) => match ast:: LitKind :: from_token_lit ( token_lit) {
@@ -180,7 +182,7 @@ pub fn expand_concat_bytes(
180
182
}
181
183
}
182
184
if !missing_literals. is_empty ( ) {
183
- cx. emit_err ( errors:: ConcatBytesMissingLiteral { spans : missing_literals } ) ;
185
+ cx. dcx ( ) . emit_err ( errors:: ConcatBytesMissingLiteral { spans : missing_literals } ) ;
184
186
return base:: MacEager :: expr ( DummyResult :: raw_expr ( sp, true ) ) ;
185
187
} else if has_errors {
186
188
return base:: MacEager :: expr ( DummyResult :: raw_expr ( sp, true ) ) ;
0 commit comments