@@ -280,8 +280,16 @@ where
280
280
L : DecimalFormatterLoader ,
281
281
{
282
282
let names = RawDateTimeNames :: new_without_number_formatting ( ) ;
283
- Self :: try_new_internal_with_names ( provider, provider, loader, prefs, field_set, names)
284
- . map_err ( |e| e. 0 )
283
+ Self :: try_new_internal_with_names (
284
+ provider,
285
+ provider,
286
+ loader,
287
+ prefs,
288
+ field_set,
289
+ names,
290
+ DateTimeNamesMetadata :: new_empty ( ) , // OK: this is a constructor
291
+ )
292
+ . map_err ( |e| e. 0 )
285
293
}
286
294
287
295
#[ allow( clippy:: result_large_err) ] // returning ownership of an argument to the caller
@@ -292,7 +300,14 @@ where
292
300
prefs : DateTimeFormatterPreferences ,
293
301
field_set : CompositeFieldSet ,
294
302
mut names : RawDateTimeNames < FSet > ,
295
- ) -> Result < Self , ( DateTimeFormatterLoadError , RawDateTimeNames < FSet > ) >
303
+ mut names_metadata : DateTimeNamesMetadata ,
304
+ ) -> Result <
305
+ Self ,
306
+ (
307
+ DateTimeFormatterLoadError ,
308
+ ( RawDateTimeNames < FSet > , DateTimeNamesMetadata ) ,
309
+ ) ,
310
+ >
296
311
where
297
312
P0 : ?Sized + AllFixedCalendarPatternDataMarkers < C , FSet > ,
298
313
P1 : ?Sized + AllFixedCalendarFormattingDataMarkers < C , FSet > ,
@@ -307,7 +322,7 @@ where
307
322
) ;
308
323
let selection = match selection {
309
324
Ok ( selection) => selection,
310
- Err ( e) => return Err ( ( DateTimeFormatterLoadError :: Data ( e) , names) ) ,
325
+ Err ( e) => return Err ( ( DateTimeFormatterLoadError :: Data ( e) , ( names, names_metadata ) ) ) ,
311
326
} ;
312
327
let result = names. load_for_pattern (
313
328
& <FSet :: D as TypedDateDataMarkers < C > >:: YearNamesV1 :: bind ( provider) ,
@@ -328,10 +343,16 @@ where
328
343
loader, // fixed decimal formatter
329
344
prefs,
330
345
selection. pattern_items_for_data_loading ( ) ,
346
+ & mut names_metadata,
331
347
) ;
332
348
match result {
333
349
Ok ( ( ) ) => ( ) ,
334
- Err ( e) => return Err ( ( DateTimeFormatterLoadError :: Names ( e) , names) ) ,
350
+ Err ( e) => {
351
+ return Err ( (
352
+ DateTimeFormatterLoadError :: Names ( e) ,
353
+ ( names, names_metadata) ,
354
+ ) )
355
+ }
335
356
} ;
336
357
Ok ( Self {
337
358
selection,
@@ -561,12 +582,21 @@ where
561
582
let calendar = FormattableAnyCalendarLoader :: load ( loader, kind) ?;
562
583
let names = RawDateTimeNames :: new_without_number_formatting ( ) ;
563
584
Self :: try_new_internal_with_calendar_and_names (
564
- provider, provider, loader, prefs, field_set, calendar, names,
585
+ provider,
586
+ provider,
587
+ loader,
588
+ prefs,
589
+ field_set,
590
+ calendar,
591
+ names,
592
+ DateTimeNamesMetadata :: new_empty ( ) , // OK: this is a constructor
565
593
)
566
594
. map_err ( |e| e. 0 )
567
595
}
568
596
569
597
#[ allow( clippy:: result_large_err) ] // returning ownership of an argument to the caller
598
+ #[ allow( clippy:: too_many_arguments) ] // internal function with lots of generics
599
+ #[ allow( clippy:: type_complexity) ] // return type has all the parts inside
570
600
pub ( crate ) fn try_new_internal_with_calendar_and_names < P0 , P1 , L > (
571
601
provider_p : & P0 ,
572
602
provider : & P1 ,
@@ -575,11 +605,16 @@ where
575
605
field_set : CompositeFieldSet ,
576
606
calendar : FormattableAnyCalendar ,
577
607
mut names : RawDateTimeNames < FSet > ,
608
+ mut names_metadata : DateTimeNamesMetadata ,
578
609
) -> Result <
579
610
Self ,
580
611
(
581
612
DateTimeFormatterLoadError ,
582
- ( FormattableAnyCalendar , RawDateTimeNames < FSet > ) ,
613
+ (
614
+ FormattableAnyCalendar ,
615
+ RawDateTimeNames < FSet > ,
616
+ DateTimeNamesMetadata ,
617
+ ) ,
583
618
) ,
584
619
>
585
620
where
@@ -599,7 +634,12 @@ where
599
634
) ;
600
635
let selection = match selection {
601
636
Ok ( selection) => selection,
602
- Err ( e) => return Err ( ( DateTimeFormatterLoadError :: Data ( e) , ( calendar, names) ) ) ,
637
+ Err ( e) => {
638
+ return Err ( (
639
+ DateTimeFormatterLoadError :: Data ( e) ,
640
+ ( calendar, names, names_metadata) ,
641
+ ) )
642
+ }
603
643
} ;
604
644
let result = names. load_for_pattern (
605
645
& FormattableAnyCalendarNamesLoader :: < <FSet :: D as DateDataMarkers >:: Year , _ > :: new (
@@ -626,10 +666,16 @@ where
626
666
loader, // fixed decimal formatter
627
667
prefs,
628
668
selection. pattern_items_for_data_loading ( ) ,
669
+ & mut names_metadata,
629
670
) ;
630
671
match result {
631
672
Ok ( ( ) ) => ( ) ,
632
- Err ( e) => return Err ( ( DateTimeFormatterLoadError :: Names ( e) , ( calendar, names) ) ) ,
673
+ Err ( e) => {
674
+ return Err ( (
675
+ DateTimeFormatterLoadError :: Names ( e) ,
676
+ ( calendar, names, names_metadata) ,
677
+ ) )
678
+ }
633
679
} ;
634
680
Ok ( Self {
635
681
selection,
0 commit comments