@@ -20,6 +20,8 @@ internal sealed record ResxGroup
2020 isEnabledByDefault : true
2121 ) ;
2222
23+ private readonly ResxFile ? _mainFile ;
24+
2325 /// <summary>
2426 /// Basename is the name of the file without culture and filetype
2527 /// </summary>
@@ -28,7 +30,7 @@ internal sealed record ResxGroup
2830 /// <summary>
2931 /// MainFile is the file without culture
3032 /// </summary>
31- public ResxFile MainFile { get ; }
33+ public ResxFile MainFile => _mainFile ! ;
3234
3335 /// <summary>
3436 /// SubFiles are ordered by culture LCID
@@ -42,7 +44,7 @@ internal sealed record ResxGroup
4244
4345 public ResxGroup ( IReadOnlyList < ResxFile > resx )
4446 {
45- MainFile = null ! ;
47+ _mainFile = null ;
4648 SubFiles = ImmutableEquatableArray < ResxFile > . Empty ;
4749 try
4850 {
@@ -57,7 +59,7 @@ public ResxGroup(IReadOnlyList<ResxFile> resx)
5759 return ;
5860 }
5961
60- MainFile = mainFile ;
62+ _mainFile = mainFile ;
6163 }
6264 catch
6365 {
@@ -84,22 +86,22 @@ public bool Equals(ResxGroup? other)
8486 return true ;
8587 }
8688
87- return Basename == other . Basename && MainFile . Equals ( other . MainFile ) && SubFiles . Equals ( other . SubFiles ) ;
89+ return Basename == other . Basename && _mainFile == other . _mainFile && SubFiles . Equals ( other . SubFiles ) ;
8890 }
8991
9092 public override int GetHashCode ( )
9193 {
9294 unchecked
9395 {
9496 var hashCode = Basename . GetHashCode ( ) ;
95- hashCode = ( hashCode * 397 ) ^ MainFile . GetHashCode ( ) ;
97+ hashCode = ( hashCode * 397 ) ^ ( _mainFile ? . GetHashCode ( ) ?? 0 ) ;
9698 hashCode = ( hashCode * 397 ) ^ SubFiles . GetHashCode ( ) ;
9799 return hashCode ;
98100 }
99101 }
100102
101103 public override string ToString ( )
102104 {
103- return $ "{ nameof ( MainFile ) } : { MainFile } , { nameof ( SubFiles ) } : { string . Join ( "; " , SubFiles ) } ";
105+ return $ "{ nameof ( MainFile ) } : { _mainFile } , { nameof ( SubFiles ) } : { string . Join ( "; " , SubFiles ) } ";
104106 }
105107}
0 commit comments