2
2
3
3
use log:: debug;
4
4
5
+ use mbe:: ExpandResult ;
5
6
use parser:: FragmentKind ;
6
7
use syntax:: {
7
8
ast:: { self , AstNode , GenericParamsOwner , ModuleItemOwner , NameOwner } ,
@@ -23,7 +24,7 @@ macro_rules! register_builtin {
23
24
db: & dyn AstDatabase ,
24
25
id: MacroCallId ,
25
26
tt: & tt:: Subtree ,
26
- ) -> Result <tt:: Subtree , mbe :: ExpandError > {
27
+ ) -> ExpandResult <tt:: Subtree > {
27
28
let expander = match * self {
28
29
$( BuiltinDeriveExpander :: $trait => $expand, ) *
29
30
} ;
@@ -147,11 +148,11 @@ fn make_type_args(n: usize, bound: Vec<tt::TokenTree>) -> Vec<tt::TokenTree> {
147
148
result
148
149
}
149
150
150
- fn expand_simple_derive (
151
- tt : & tt :: Subtree ,
152
- trait_path : tt :: Subtree ,
153
- ) -> Result < tt :: Subtree , mbe :: ExpandError > {
154
- let info = parse_adt ( tt ) ? ;
151
+ fn expand_simple_derive ( tt : & tt :: Subtree , trait_path : tt :: Subtree ) -> ExpandResult < tt :: Subtree > {
152
+ let info = match parse_adt ( tt ) {
153
+ Ok ( info ) => info ,
154
+ Err ( e ) => return ExpandResult :: only_err ( e ) ,
155
+ } ;
155
156
let name = info. name ;
156
157
let trait_path_clone = trait_path. token_trees . clone ( ) ;
157
158
let bound = ( quote ! { : ##trait_path_clone } ) . token_trees ;
@@ -161,7 +162,7 @@ fn expand_simple_derive(
161
162
let expanded = quote ! {
162
163
impl ##type_params ##trait_path for #name ##type_args { }
163
164
} ;
164
- Ok ( expanded)
165
+ ExpandResult :: ok ( expanded)
165
166
}
166
167
167
168
fn find_builtin_crate ( db : & dyn AstDatabase , id : MacroCallId ) -> tt:: TokenTree {
@@ -186,7 +187,7 @@ fn copy_expand(
186
187
db : & dyn AstDatabase ,
187
188
id : MacroCallId ,
188
189
tt : & tt:: Subtree ,
189
- ) -> Result < tt:: Subtree , mbe :: ExpandError > {
190
+ ) -> ExpandResult < tt:: Subtree > {
190
191
let krate = find_builtin_crate ( db, id) ;
191
192
expand_simple_derive ( tt, quote ! { #krate:: marker:: Copy } )
192
193
}
@@ -195,7 +196,7 @@ fn clone_expand(
195
196
db : & dyn AstDatabase ,
196
197
id : MacroCallId ,
197
198
tt : & tt:: Subtree ,
198
- ) -> Result < tt:: Subtree , mbe :: ExpandError > {
199
+ ) -> ExpandResult < tt:: Subtree > {
199
200
let krate = find_builtin_crate ( db, id) ;
200
201
expand_simple_derive ( tt, quote ! { #krate:: clone:: Clone } )
201
202
}
@@ -204,7 +205,7 @@ fn default_expand(
204
205
db : & dyn AstDatabase ,
205
206
id : MacroCallId ,
206
207
tt : & tt:: Subtree ,
207
- ) -> Result < tt:: Subtree , mbe :: ExpandError > {
208
+ ) -> ExpandResult < tt:: Subtree > {
208
209
let krate = find_builtin_crate ( db, id) ;
209
210
expand_simple_derive ( tt, quote ! { #krate:: default :: Default } )
210
211
}
@@ -213,7 +214,7 @@ fn debug_expand(
213
214
db : & dyn AstDatabase ,
214
215
id : MacroCallId ,
215
216
tt : & tt:: Subtree ,
216
- ) -> Result < tt:: Subtree , mbe :: ExpandError > {
217
+ ) -> ExpandResult < tt:: Subtree > {
217
218
let krate = find_builtin_crate ( db, id) ;
218
219
expand_simple_derive ( tt, quote ! { #krate:: fmt:: Debug } )
219
220
}
@@ -222,16 +223,12 @@ fn hash_expand(
222
223
db : & dyn AstDatabase ,
223
224
id : MacroCallId ,
224
225
tt : & tt:: Subtree ,
225
- ) -> Result < tt:: Subtree , mbe :: ExpandError > {
226
+ ) -> ExpandResult < tt:: Subtree > {
226
227
let krate = find_builtin_crate ( db, id) ;
227
228
expand_simple_derive ( tt, quote ! { #krate:: hash:: Hash } )
228
229
}
229
230
230
- fn eq_expand (
231
- db : & dyn AstDatabase ,
232
- id : MacroCallId ,
233
- tt : & tt:: Subtree ,
234
- ) -> Result < tt:: Subtree , mbe:: ExpandError > {
231
+ fn eq_expand ( db : & dyn AstDatabase , id : MacroCallId , tt : & tt:: Subtree ) -> ExpandResult < tt:: Subtree > {
235
232
let krate = find_builtin_crate ( db, id) ;
236
233
expand_simple_derive ( tt, quote ! { #krate:: cmp:: Eq } )
237
234
}
@@ -240,7 +237,7 @@ fn partial_eq_expand(
240
237
db : & dyn AstDatabase ,
241
238
id : MacroCallId ,
242
239
tt : & tt:: Subtree ,
243
- ) -> Result < tt:: Subtree , mbe :: ExpandError > {
240
+ ) -> ExpandResult < tt:: Subtree > {
244
241
let krate = find_builtin_crate ( db, id) ;
245
242
expand_simple_derive ( tt, quote ! { #krate:: cmp:: PartialEq } )
246
243
}
@@ -249,7 +246,7 @@ fn ord_expand(
249
246
db : & dyn AstDatabase ,
250
247
id : MacroCallId ,
251
248
tt : & tt:: Subtree ,
252
- ) -> Result < tt:: Subtree , mbe :: ExpandError > {
249
+ ) -> ExpandResult < tt:: Subtree > {
253
250
let krate = find_builtin_crate ( db, id) ;
254
251
expand_simple_derive ( tt, quote ! { #krate:: cmp:: Ord } )
255
252
}
@@ -258,7 +255,7 @@ fn partial_ord_expand(
258
255
db : & dyn AstDatabase ,
259
256
id : MacroCallId ,
260
257
tt : & tt:: Subtree ,
261
- ) -> Result < tt:: Subtree , mbe :: ExpandError > {
258
+ ) -> ExpandResult < tt:: Subtree > {
262
259
let krate = find_builtin_crate ( db, id) ;
263
260
expand_simple_derive ( tt, quote ! { #krate:: cmp:: PartialOrd } )
264
261
}
0 commit comments