@@ -642,7 +642,7 @@ fn test_unknown_field_rename_struct() {
642
642
Token :: Str ( "a4" ) ,
643
643
Token :: I32 ( 3 ) ,
644
644
] ,
645
- "unknown field `a4`, expected one of `a1`, `a2 `, `a6`" ,
645
+ "unknown field `a4`, expected one of `a1`, `a3`, `a2`, `a5 `, `a6`" ,
646
646
) ;
647
647
}
648
648
@@ -780,7 +780,7 @@ fn test_rename_enum() {
780
780
Token :: StructVariant {
781
781
name : "AliasEnum" ,
782
782
variant : "sailor_moon" ,
783
- len : 3 ,
783
+ len : 5 ,
784
784
} ,
785
785
Token :: Str ( "a" ) ,
786
786
Token :: I8 ( 0 ) ,
@@ -798,7 +798,7 @@ fn test_rename_enum() {
798
798
Token :: StructVariant {
799
799
name : "AliasEnum" ,
800
800
variant : "usagi_tsukino" ,
801
- len : 3 ,
801
+ len : 5 ,
802
802
} ,
803
803
Token :: Str ( "a" ) ,
804
804
Token :: I8 ( 0 ) ,
@@ -827,7 +827,7 @@ fn test_unknown_field_rename_enum() {
827
827
Token :: StructVariant {
828
828
name : "AliasEnum" ,
829
829
variant : "usagi_tsukino" ,
830
- len : 3 ,
830
+ len : 5 ,
831
831
} ,
832
832
Token :: Str ( "a" ) ,
833
833
Token :: I8 ( 0 ) ,
@@ -836,7 +836,7 @@ fn test_unknown_field_rename_enum() {
836
836
Token :: Str ( "d" ) ,
837
837
Token :: I8 ( 2 ) ,
838
838
] ,
839
- "unknown field `d`, expected one of `a`, `b `, `f`" ,
839
+ "unknown field `d`, expected one of `a`, `c`, `b`, `e `, `f`" ,
840
840
) ;
841
841
}
842
842
@@ -2658,6 +2658,68 @@ fn test_flatten_any_after_flatten_struct() {
2658
2658
) ;
2659
2659
}
2660
2660
2661
+ #[ test]
2662
+ fn test_alias_in_flatten_context ( ) {
2663
+ #[ derive( Debug , PartialEq , Deserialize ) ]
2664
+ struct Outer {
2665
+ #[ serde( flatten) ]
2666
+ a : AliasStruct ,
2667
+ b : i32 ,
2668
+ }
2669
+
2670
+ assert_de_tokens (
2671
+ & Outer {
2672
+ a : AliasStruct {
2673
+ a1 : 1 ,
2674
+ a2 : 2 ,
2675
+ a4 : 4 ,
2676
+ } ,
2677
+ b : 7 ,
2678
+ } ,
2679
+ & [
2680
+ Token :: Struct {
2681
+ name : "Outer" ,
2682
+ len : 4 ,
2683
+ } ,
2684
+ Token :: Str ( "a1" ) ,
2685
+ Token :: I32 ( 1 ) ,
2686
+ Token :: Str ( "a2" ) ,
2687
+ Token :: I32 ( 2 ) ,
2688
+ Token :: Str ( "a5" ) ,
2689
+ Token :: I32 ( 4 ) ,
2690
+ Token :: Str ( "b" ) ,
2691
+ Token :: I32 ( 7 ) ,
2692
+ Token :: StructEnd ,
2693
+ ] ,
2694
+ ) ;
2695
+
2696
+ assert_de_tokens (
2697
+ & Outer {
2698
+ a : AliasStruct {
2699
+ a1 : 1 ,
2700
+ a2 : 2 ,
2701
+ a4 : 4 ,
2702
+ } ,
2703
+ b : 7 ,
2704
+ } ,
2705
+ & [
2706
+ Token :: Struct {
2707
+ name : "Outer" ,
2708
+ len : 4 ,
2709
+ } ,
2710
+ Token :: Str ( "a1" ) ,
2711
+ Token :: I32 ( 1 ) ,
2712
+ Token :: Str ( "a2" ) ,
2713
+ Token :: I32 ( 2 ) ,
2714
+ Token :: Str ( "a6" ) ,
2715
+ Token :: I32 ( 4 ) ,
2716
+ Token :: Str ( "b" ) ,
2717
+ Token :: I32 ( 7 ) ,
2718
+ Token :: StructEnd ,
2719
+ ] ,
2720
+ ) ;
2721
+ }
2722
+
2661
2723
#[ test]
2662
2724
fn test_expecting_message ( ) {
2663
2725
#[ derive( Deserialize , PartialEq , Debug ) ]
0 commit comments