@@ -323,14 +323,12 @@ fn make_count<'hir>(
323323/// Generates
324324///
325325/// ```text
326- /// <core::fmt::rt::Placeholder::new(
327- /// …usize, // position
328- /// '…', // fill
329- /// <core::fmt::rt::Alignment>::…, // alignment
330- /// …u32, // flags
331- /// <core::fmt::rt::Count::…>, // width
332- /// <core::fmt::rt::Count::…>, // precision
333- /// )
326+ /// <core::fmt::rt::Placeholder {
327+ /// position: …usize,
328+ /// flags: …u32,
329+ /// precision: <core::fmt::rt::Count::…>,
330+ /// width: <core::fmt::rt::Count::…>,
331+ /// }
334332/// ```
335333fn make_format_spec < ' hir > (
336334 ctx : & mut LoweringContext < ' _ , ' hir > ,
@@ -384,13 +382,13 @@ fn make_format_spec<'hir>(
384382 let flags = ctx. expr_u32 ( sp, flags) ;
385383 let precision = make_count ( ctx, sp, precision, argmap) ;
386384 let width = make_count ( ctx, sp, width, argmap) ;
387- let format_placeholder_new = ctx. arena . alloc ( ctx . expr_lang_item_type_relative (
388- sp,
389- hir :: LangItem :: FormatPlaceholder ,
390- sym :: new,
391- ) ) ;
392- let args = ctx. arena . alloc_from_iter ( [ position, flags, precision, width] ) ;
393- ctx. expr_call_mut ( sp, format_placeholder_new , args )
385+ let position = ctx. expr_field ( Ident :: new ( sym :: position , sp ) , ctx . arena . alloc ( position ) , sp ) ;
386+ let flags = ctx . expr_field ( Ident :: new ( sym :: flags , sp) , ctx . arena . alloc ( flags ) , sp ) ;
387+ let precision = ctx . expr_field ( Ident :: new ( sym :: precision , sp ) , ctx . arena . alloc ( precision ) , sp ) ;
388+ let width = ctx . expr_field ( Ident :: new ( sym :: width , sp ) , ctx . arena . alloc ( width ) , sp ) ;
389+ let placeholder = ctx . arena . alloc ( hir :: QPath :: LangItem ( hir :: LangItem :: FormatPlaceholder , sp ) ) ;
390+ let fields = ctx. arena . alloc_from_iter ( [ position, flags, precision, width] ) ;
391+ ctx. expr ( sp, hir :: ExprKind :: Struct ( placeholder , fields , hir :: StructTailExpr :: None ) )
394392}
395393
396394fn expand_format_args < ' hir > (
0 commit comments