File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -927,16 +927,11 @@ string EmitDeserializeConstructionWithBranching(string indent)
927927 . Select ( ( x , i ) => ( x , i ) )
928928 . Where ( v => v . x . SuppressDefaultInitialization ) ;
929929
930- if ( GenerateType is GenerateType . VersionTolerant or GenerateType . CircularReference )
931- {
932- return members
933- . Select ( v => $ "{ indent } if (deltas[{ v . i } ] != 0) value.@{ v . x . Name } = __{ v . x . Name } ;")
934- . NewLine ( ) ;
935- }
930+ var lines = GenerateType is GenerateType . VersionTolerant or GenerateType . CircularReference
931+ ? members . Select ( v => $ "{ indent } if (deltas.Length > { v . i } && deltas[{ v . i } ] != 0) value.@{ v . x . Name } = __{ v . x . Name } ;")
932+ : members . Select ( v => $ "{ indent } if ({ v . i + 1 } <= count) value.@{ v . x . Name } = __{ v . x . Name } ;") ;
936933
937- return members
938- . Select ( v => $ "{ indent } if ({ v . i + 1 } <= count) value.@{ v . x . Name } = __{ v . x . Name } ;")
939- . NewLine ( ) ;
934+ return lines . NewLine ( ) ;
940935 }
941936
942937 string EmitUnionTemplate ( IGeneratorContext context )
Original file line number Diff line number Diff line change @@ -19,11 +19,11 @@ public void SuppressDefaultInitialization()
1919 [ Fact ]
2020 public void SuppressDefaultInitialization_VersionTolerant ( )
2121 {
22- var bin = MemoryPackSerializer . Serialize ( new DefaultValuePlaceholder { X = 1 } ) ;
22+ var bin = MemoryPackSerializer . Serialize ( new DefaultValuePlaceholderWithVersionTolerant { X = 1 } ) ;
2323 var expected = new HasDefaultValueWithVersionTolerant ( ) ;
2424 var deserializedValue = MemoryPackSerializer . Deserialize < HasDefaultValueWithVersionTolerant > ( bin ) ! ;
2525 deserializedValue . Y . Should ( ) . Be ( default ) ;
26- deserializedValue . Z . Should ( ) . Be ( expected . Z ) ;
26+ deserializedValue . Z . Should ( ) . Be ( default ) ;
2727 deserializedValue . Y2 . Should ( ) . Be ( expected . Y2 ) ;
2828 deserializedValue . Z2 . Should ( ) . Be ( expected . Z2 ) ;
2929 }
Original file line number Diff line number Diff line change @@ -6,6 +6,12 @@ partial class DefaultValuePlaceholder
66 public int X { get ; set ; }
77}
88
9+ [ MemoryPackable ( GenerateType . VersionTolerant , SerializeLayout . Sequential ) ]
10+ partial class DefaultValuePlaceholderWithVersionTolerant
11+ {
12+ public int X { get ; set ; }
13+ }
14+
915[ MemoryPackable ( GenerateType . VersionTolerant , SerializeLayout . Sequential ) ]
1016partial class HasDefaultValueWithVersionTolerant
1117{
You can’t perform that action at this time.
0 commit comments