@@ -20,9 +20,9 @@ public class OverloadChooser
2020 private ParseInfo parseInfo { get ; }
2121 private Scope scope { get ; }
2222 private Scope getter { get ; }
23- private DocRange genericErrorRange { get ; }
2423 public DocRange CallRange { get ; }
25- private OverloadError ErrorMessages { get ; }
24+ private OverloadError _errorMessages ;
25+ private readonly DocRange _targetRange ;
2626
2727 private IParameterCallable [ ] AllOverloads { get ; }
2828 private List < IParameterCallable > CurrentOptions { get ; set ; }
@@ -44,9 +44,9 @@ public OverloadChooser(IParameterCallable[] overloads, ParseInfo parseInfo, Scop
4444 this . parseInfo = parseInfo ;
4545 this . scope = elementScope ;
4646 this . getter = getter ;
47- this . genericErrorRange = genericErrorRange ;
47+ this . _targetRange = genericErrorRange ;
4848 CallRange = callRange ;
49- this . ErrorMessages = errorMessages ;
49+ this . _errorMessages = errorMessages ;
5050
5151 parseInfo . Script . AddOverloadData ( this ) ;
5252 }
@@ -157,7 +157,7 @@ private OverloadMatch MatchOverload(IParameterCallable option, PickyParameter[]
157157 for ( int i = 0 ; i < match . OrderedParameters . Length ; i ++ ) match . CompareParameterTypes ( i ) ;
158158
159159 // Get the missing parameters.
160- match . GetMissingParameters ( genericErrorRange , ErrorMessages , context , CallRange ) ;
160+ match . GetMissingParameters ( _errorMessages , context , _targetRange , CallRange ) ;
161161
162162 return match ;
163163 }
@@ -199,7 +199,7 @@ private void CheckAccessLevel()
199199 else if ( ! getter . AccessorMatches ( scope , Overload . AccessLevel ) ) accessable = false ;
200200
201201 if ( ! accessable )
202- parseInfo . Script . Diagnostics . Error ( string . Format ( "'{0}' is inaccessable due to its access level." , Overload . GetLabel ( false ) ) , genericErrorRange ) ;
202+ parseInfo . Script . Diagnostics . Error ( string . Format ( "'{0}' is inaccessable due to its access level." , Overload . GetLabel ( false ) ) , _targetRange ) ;
203203 }
204204
205205 private bool SetParameterCount ( int numberOfParameters )
@@ -215,8 +215,8 @@ private bool SetParameterCount(int numberOfParameters)
215215 if ( CurrentOptions . Count == 0 )
216216 {
217217 parseInfo . Script . Diagnostics . Error (
218- string . Format ( ErrorMessages . BadParameterCount , numberOfParameters ) ,
219- genericErrorRange
218+ string . Format ( _errorMessages . BadParameterCount , numberOfParameters ) ,
219+ _targetRange
220220 ) ;
221221 return false ;
222222 }
@@ -349,33 +349,33 @@ public void CompareParameterTypes(int parameter)
349349 }
350350
351351 /// <summary>Determines if there are any missing parameters.</summary>
352- public void GetMissingParameters ( DocRange genericErrorRange , OverloadError messageHandler , List < ParameterValue > context , DocRange functionCallRange )
352+ public void GetMissingParameters ( OverloadError messageHandler , List < ParameterValue > context , DocRange targetRange , DocRange signatureRange )
353353 {
354354 for ( int i = 0 ; i < OrderedParameters . Length ; i ++ )
355355 if ( OrderedParameters [ i ] ? . Value == null )
356356 {
357357 if ( OrderedParameters [ i ] == null ) OrderedParameters [ i ] = new PickyParameter ( true ) ;
358- AddContextualParameter ( context , functionCallRange , i ) ;
358+ AddContextualParameter ( context , signatureRange , targetRange , i ) ;
359359
360360 // Default value
361361 if ( Option . Parameters [ i ] . DefaultValue != null )
362362 // Set the default value.
363363 OrderedParameters [ i ] . Value = Option . Parameters [ i ] . DefaultValue ;
364364 else
365365 // Parameter is missing.
366- Error ( string . Format ( messageHandler . MissingParameter , Option . Parameters [ i ] . Name ) , genericErrorRange ) ;
366+ Error ( string . Format ( messageHandler . MissingParameter , Option . Parameters [ i ] . Name ) , targetRange ) ;
367367 }
368368 }
369369
370- private void AddContextualParameter ( List < ParameterValue > context , DocRange functionCallRange , int parameter )
370+ private void AddContextualParameter ( List < ParameterValue > context , DocRange targetRange , DocRange signatureRange , int parameter )
371371 {
372372 // No parameters set, set range for first parameter to callRange.
373373 if ( parameter == 0 && OrderedParameters . All ( p => p ? . Value == null ) )
374- OrderedParameters [ 0 ] . ExpressionRange = functionCallRange ;
374+ OrderedParameters [ 0 ] . ExpressionRange = targetRange ;
375375 // If this is the last contextual parameter and the context contains comma, set the expression range so signature help works with the last comma when there is no set expression.
376376 else if ( LastContextualParameterIndex == parameter && parameter < context . Count && context [ parameter ] . NextComma != null )
377377 // Set the range to be the end of the comma to the start of the call range.
378- OrderedParameters [ parameter ] . ExpressionRange = context [ parameter ] . NextComma . Range . End + functionCallRange . End ;
378+ OrderedParameters [ parameter ] . ExpressionRange = context [ parameter ] . NextComma . Range . End + signatureRange . End ;
379379 }
380380
381381 public void AddDiagnostics ( FileDiagnostics diagnostics )
0 commit comments