@@ -74,21 +74,13 @@ public VisitUnit Visit(FunctionDeclaration visitable)
7474 var indexOfFirstDefaultArgument = visitable . Arguments
7575 . Select ( ( x , i ) => new { Argument = x , Index = i } )
7676 . FirstOrDefault ( pair => pair . Argument is DefaultValueArgument ) ? . Index ?? - 1 ;
77- for ( var i = indexOfFirstDefaultArgument ; i < visitable . Arguments . Count ; i ++ )
78- {
79- if ( i is - 1 ) break ;
80- if ( visitable . Arguments [ i ] is not DefaultValueArgument )
81- throw new NamedArgumentAfterDefaultValueArgument (
82- visitable . Segment ,
83- function : visitable . Name ,
84- visitable . Arguments [ i ] ) ;
85- }
8677
8778 var parameters = visitable . Arguments . Select ( x =>
8879 new VariableSymbol (
8980 x . Name ,
9081 x . TypeValue . Accept ( _typeBuilder ) ) ) . ToList ( ) ;
9182 var functionSymbolId = new FunctionSymbolId ( visitable . Name , parameters . Select ( x => x . Type ) ) ;
83+ _ambiguousInvocations . Clear ( functionSymbolId ) ;
9284 visitable . ComputedFunctionAddress = functionSymbolId . ToString ( ) ;
9385 var functionSymbol = new FunctionSymbol (
9486 visitable . Name ,
@@ -127,6 +119,12 @@ public VisitUnit Visit(FunctionDeclaration visitable)
127119 for ( var i = indexOfFirstDefaultArgument ; i < visitable . Arguments . Count ; i ++ )
128120 {
129121 if ( i is - 1 ) break ;
122+ if ( visitable . Arguments [ i ] is not DefaultValueArgument )
123+ throw new NamedArgumentAfterDefaultValueArgument (
124+ visitable . Segment ,
125+ function : visitable . Name ,
126+ visitable . Arguments [ i ] ) ;
127+
130128 var overload = new FunctionSymbolId ( visitable . Name , parameters [ ..i ] . Select ( x => x . Type ) ) ;
131129 var existing = parentTable . FindSymbol ( overload ) ;
132130 parentTable . AddSymbol ( functionSymbol , overload ) ;
0 commit comments