@@ -353,8 +353,9 @@ impl Body {
353
353
let _p = profile:: span ( "body_with_source_map_query" ) ;
354
354
let mut params = None ;
355
355
356
- let ( file_id, module, body) = match def {
356
+ let ( file_id, module, body, is_async_fn ) = match def {
357
357
DefWithBodyId :: FunctionId ( f) => {
358
+ let data = db. function_data ( f) ;
358
359
let f = f. lookup ( db) ;
359
360
let src = f. source ( db) ;
360
361
params = src. value . param_list ( ) . map ( |param_list| {
@@ -371,27 +372,33 @@ impl Body {
371
372
} ) ,
372
373
)
373
374
} ) ;
374
- ( src. file_id , f. module ( db) , src. value . body ( ) . map ( ast:: Expr :: from) )
375
+ (
376
+ src. file_id ,
377
+ f. module ( db) ,
378
+ src. value . body ( ) . map ( ast:: Expr :: from) ,
379
+ data. has_async_kw ( ) ,
380
+ )
375
381
}
376
382
DefWithBodyId :: ConstId ( c) => {
377
383
let c = c. lookup ( db) ;
378
384
let src = c. source ( db) ;
379
- ( src. file_id , c. module ( db) , src. value . body ( ) )
385
+ ( src. file_id , c. module ( db) , src. value . body ( ) , false )
380
386
}
381
387
DefWithBodyId :: StaticId ( s) => {
382
388
let s = s. lookup ( db) ;
383
389
let src = s. source ( db) ;
384
- ( src. file_id , s. module ( db) , src. value . body ( ) )
390
+ ( src. file_id , s. module ( db) , src. value . body ( ) , false )
385
391
}
386
392
DefWithBodyId :: VariantId ( v) => {
387
393
let e = v. parent . lookup ( db) ;
388
394
let src = v. parent . child_source ( db) ;
389
395
let variant = & src. value [ v. local_id ] ;
390
- ( src. file_id , e. container , variant. expr ( ) )
396
+ ( src. file_id , e. container , variant. expr ( ) , false )
391
397
}
392
398
} ;
393
399
let expander = Expander :: new ( db, file_id, module) ;
394
- let ( mut body, source_map) = Body :: new ( db, expander, params, body, module. krate ) ;
400
+ let ( mut body, source_map) =
401
+ Body :: new ( db, expander, params, body, module. krate , is_async_fn) ;
395
402
body. shrink_to_fit ( ) ;
396
403
397
404
( Arc :: new ( body) , Arc :: new ( source_map) )
@@ -421,8 +428,9 @@ impl Body {
421
428
params : Option < ( ast:: ParamList , impl Iterator < Item = bool > ) > ,
422
429
body : Option < ast:: Expr > ,
423
430
krate : CrateId ,
431
+ is_async_fn : bool ,
424
432
) -> ( Body , BodySourceMap ) {
425
- lower:: lower ( db, expander, params, body, krate)
433
+ lower:: lower ( db, expander, params, body, krate, is_async_fn )
426
434
}
427
435
428
436
fn shrink_to_fit ( & mut self ) {
0 commit comments