@@ -46,14 +46,15 @@ public override bool Equals(Tuple other)
4646 var fieldDescriptors = PackedDescriptor . FieldDescriptors ;
4747 var count = Count ;
4848 for ( int i = 0 ; i < count ; i ++ ) {
49- var thisState = GetFieldState ( ref fieldDescriptors [ i ] ) ;
50- var otherState = packedOther . GetFieldState ( ref fieldDescriptors [ i ] ) ;
49+ ref var descriptor = ref fieldDescriptors [ i ] ;
50+ var thisState = GetFieldState ( ref descriptor ) ;
51+ var otherState = packedOther . GetFieldState ( ref descriptor ) ;
5152 if ( thisState != otherState )
5253 return false ;
5354 if ( thisState != TupleFieldState . Available )
5455 continue ;
55- var accessor = fieldDescriptors [ i ] . Accessor ;
56- if ( ! accessor . ValueEquals ( this , ref fieldDescriptors [ i ] , packedOther , ref fieldDescriptors [ i ] ) )
56+ var accessor = descriptor . Accessor ;
57+ if ( ! accessor . ValueEquals ( this , ref descriptor , packedOther , ref descriptor ) )
5758 return false ;
5859 }
5960
@@ -66,10 +67,11 @@ public override int GetHashCode()
6667 var fieldDescriptors = PackedDescriptor . FieldDescriptors ;
6768 int result = 0 ;
6869 for ( int i = 0 ; i < count ; i ++ ) {
69- var accessor = fieldDescriptors [ i ] . Accessor ;
70+ ref var descriptor = ref fieldDescriptors [ i ] ;
71+ var accessor = descriptor . Accessor ;
7072 var state = GetFieldState ( ref fieldDescriptors [ i ] ) ;
7173 var fieldHash = state == TupleFieldState . Available
72- ? accessor . GetValueHashCode ( this , ref fieldDescriptors [ i ] )
74+ ? accessor . GetValueHashCode ( this , ref descriptor )
7375 : 0 ;
7476 result = HashCodeMultiplier * result ^ fieldHash ;
7577 }
@@ -83,23 +85,23 @@ public override TupleFieldState GetFieldState(int fieldIndex)
8385
8486 protected internal override void SetFieldState ( int fieldIndex , TupleFieldState fieldState )
8587 {
86- if ( fieldState == TupleFieldState . Null )
87- throw new ArgumentOutOfRangeException ( "fieldState" ) ;
88+ if ( fieldState == TupleFieldState . Null ) {
89+ throw new ArgumentOutOfRangeException ( nameof ( fieldState ) ) ;
90+ }
8891
89- var fieldDescriptors = PackedDescriptor . FieldDescriptors ;
90- SetFieldState ( ref fieldDescriptors [ fieldIndex ] , fieldState ) ;
92+ SetFieldState ( ref PackedDescriptor . FieldDescriptors [ fieldIndex ] , fieldState ) ;
9193 }
9294
9395 public override object GetValue ( int fieldIndex , out TupleFieldState fieldState )
9496 {
95- var fieldDescriptors = PackedDescriptor . FieldDescriptors ;
96- return fieldDescriptors [ fieldIndex ] . Accessor . GetUntypedValue ( this , ref fieldDescriptors [ fieldIndex ] , out fieldState ) ;
97+ ref var descriptor = ref PackedDescriptor . FieldDescriptors [ fieldIndex ] ;
98+ return descriptor . Accessor . GetUntypedValue ( this , ref descriptor , out fieldState ) ;
9799 }
98100
99101 public override void SetValue ( int fieldIndex , object fieldValue )
100102 {
101- var fieldDescriptors = PackedDescriptor . FieldDescriptors ;
102- fieldDescriptors [ fieldIndex ] . Accessor . SetUntypedValue ( this , ref fieldDescriptors [ fieldIndex ] , fieldValue ) ;
103+ ref var descriptor = ref PackedDescriptor . FieldDescriptors [ fieldIndex ] ;
104+ descriptor . Accessor . SetUntypedValue ( this , ref descriptor , fieldValue ) ;
103105 }
104106
105107 public void SetFieldState ( ref PackedFieldDescriptor d , TupleFieldState fieldState )
0 commit comments