@@ -1257,7 +1257,8 @@ private Expression CreateMethodCall(CallNode node)
12571257 }
12581258
12591259 var symbol = Symbols . GetScope ( binding . ScopeNumber ) . Methods [ binding . MemberNumber ] ;
1260- var args = PrepareCallArguments ( node . ArgumentList , symbol . Method . GetParameters ( ) , InjectedProcessNeeded ( symbol . Method ) ) ;
1260+ var args = PrepareCallArguments ( node . ArgumentList , symbol . Method . GetParameters ( ) ,
1261+ InjectedProcessNeeded ( symbol . Method ) , IsModuleScope ( binding . ScopeNumber ) ) ;
12611262
12621263 var methodInfo = symbol . Method ;
12631264 if ( methodInfo is ContextMethodInfo contextMethod )
@@ -1399,9 +1400,10 @@ private Expression DirectConversionCall(CallNode node, Type type)
13991400 return ExpressionHelpers . ConvertToType (
14001401 ConvertToExpressionTree ( node . ArgumentList . Children [ 0 ] . Children [ 0 ] ) ,
14011402 type ) ;
1402- }
1403-
1404- private List < Expression > PrepareCallArguments ( BslSyntaxNode argList , ParameterInfo [ ] declaredParameters , bool injectsProcess )
1403+ }
1404+
1405+ private List < Expression > PrepareCallArguments ( BslSyntaxNode argList , ParameterInfo [ ] declaredParameters ,
1406+ bool injectsProcess , bool passUndef = false )
14051407 {
14061408 var factArguments = new List < Expression > ( ) ;
14071409
@@ -1456,6 +1458,10 @@ private List<Expression> PrepareCallArguments(BslSyntaxNode argList, ParameterIn
14561458 {
14571459 factArguments . Add ( Expression . Constant ( declaredParam . DefaultValue , declaredParam . ParameterType ) ) ;
14581460 }
1461+ else if ( passUndef )
1462+ {
1463+ factArguments . Add ( Expression . Constant ( BslUndefinedValue . Instance , declaredParam . ParameterType ) ) ;
1464+ }
14591465 else
14601466 {
14611467 var errText = new BilingualString (
0 commit comments