@@ -311,7 +311,20 @@ impl Body {
311311 DefWithBodyId :: FunctionId ( f) => {
312312 let f = f. lookup ( db) ;
313313 let src = f. source ( db) ;
314- params = src. value . param_list ( ) ;
314+ params = src. value . param_list ( ) . map ( |param_list| {
315+ let item_tree = f. id . item_tree ( db) ;
316+ let func = & item_tree[ f. id . value ] ;
317+ let krate = f. container . module ( db) . krate ;
318+ let crate_graph = db. crate_graph ( ) ;
319+ (
320+ param_list,
321+ func. params . clone ( ) . map ( move |param| {
322+ item_tree
323+ . attrs ( db, krate, param. into ( ) )
324+ . is_cfg_enabled ( & crate_graph[ krate] . cfg_options )
325+ } ) ,
326+ )
327+ } ) ;
315328 ( src. file_id , f. module ( db) , src. value . body ( ) . map ( ast:: Expr :: from) )
316329 }
317330 DefWithBodyId :: ConstId ( c) => {
@@ -334,6 +347,7 @@ impl Body {
334347 let expander = Expander :: new ( db, file_id, module) ;
335348 let ( mut body, source_map) = Body :: new ( db, expander, params, body) ;
336349 body. shrink_to_fit ( ) ;
350+
337351 ( Arc :: new ( body) , Arc :: new ( source_map) )
338352 }
339353
@@ -370,7 +384,7 @@ impl Body {
370384 fn new (
371385 db : & dyn DefDatabase ,
372386 expander : Expander ,
373- params : Option < ast:: ParamList > ,
387+ params : Option < ( ast:: ParamList , impl Iterator < Item = bool > ) > ,
374388 body : Option < ast:: Expr > ,
375389 ) -> ( Body , BodySourceMap ) {
376390 lower:: lower ( db, expander, params, body)
0 commit comments