@@ -54,13 +54,13 @@ private List<Expression> GetArgumentExpressions(SimpleflowParser.FunctionContext
5454 var actualMethodParameters = methodInfo . GetParameters ( ) ;
5555 var arguments = context . functionArguments ( ) . functionArgument ( ) ;
5656 var argumentsExpressions = new List < Expression > ( ) ;
57-
57+
5858 if ( arguments == null )
5959 {
6060 return argumentsExpressions ;
6161 }
6262
63- CheckInvalidParameters ( actualMethodParameters , arguments ) ;
63+ CheckInvalidParameters ( actualMethodParameters , arguments , context . FunctionName ( ) . GetText ( ) ) ;
6464 CheckRepeatedParameters ( arguments ) ;
6565
6666 foreach ( var methodParameter in actualMethodParameters )
@@ -113,14 +113,16 @@ where g.Count() > 1
113113 }
114114 }
115115
116- private void CheckInvalidParameters ( ParameterInfo [ ] actualMethodParameters , SimpleflowParser . FunctionArgumentContext [ ] parameters )
116+ private void CheckInvalidParameters ( ParameterInfo [ ] actualMethodParameters ,
117+ SimpleflowParser . FunctionArgumentContext [ ] parameters ,
118+ string functionName )
117119 {
118120 foreach ( var parameter in parameters )
119121 {
120122 var paramterName = parameter . Identifier ( ) . GetText ( ) ;
121123 if ( ! actualMethodParameters . Any ( p => string . Equals ( p . Name , paramterName , System . StringComparison . OrdinalIgnoreCase ) ) )
122124 {
123- throw new InvalidFunctionParameterNameException ( paramterName ) ;
125+ throw new InvalidFunctionParameterNameException ( paramterName , functionName ) ;
124126 }
125127 }
126128 }
@@ -141,12 +143,14 @@ private Expression VisitObjectIdentiferAsPerTargetType(SimpleflowParser.ObjectId
141143
142144 private Expression CreateSmartVariableIfObjectIdentiferNotDefined ( Type targetType , string name )
143145 {
144- // Variable names are not case sensitive
146+ // Variable name is not case sensitive
145147 var smartVar = GetSmartVariable ( name ) ;
146148
147149 if ( smartVar == null )
148150 {
149- throw new InvalidFunctionParameterNameException ( name ) ;
151+ // Since smart variable (JSON) can only be used with function argument,
152+ // so here we need to throw function related exception
153+ throw new InvalidFunctionParameterNameException ( $ "Invalid parameter or variable '{ name } '") ;
150154 }
151155
152156 // Return if already created
0 commit comments