diff --git a/TestSuite/lambdas4.pas b/TestSuite/lambdas4.pas new file mode 100644 index 000000000..7a4a68aec --- /dev/null +++ b/TestSuite/lambdas4.pas @@ -0,0 +1,17 @@ +type + t1=class + + function f1:byte:=2; + + constructor; + begin + var a:= new byte[1]; + a.Fill(i->f1); + assert(a[0] = 2); + end; + + end; + +begin + new t1; +end. \ No newline at end of file diff --git a/TreeConverter/LambdaExpressions/LambdaResultTypeInferrer.cs b/TreeConverter/LambdaExpressions/LambdaResultTypeInferrer.cs index 07c12cbc5..73576e4d1 100644 --- a/TreeConverter/LambdaExpressions/LambdaResultTypeInferrer.cs +++ b/TreeConverter/LambdaExpressions/LambdaResultTypeInferrer.cs @@ -78,6 +78,12 @@ namespace TreeConverter.LambdaExpressions to.name.ToLower() == RESULT_KEY_WORD) { var converted = syntaxTreeVisitor.convert_strong(from); + if (converted is typed_expression) + { + delegated_methods dm = converted.type as delegated_methods; + if (dm.empty_param_method != null) + converted = syntaxTreeVisitor.convert_typed_expression_to_function_call(converted as typed_expression); + } resultExpressionsTypes.Add(new Tuple(converted.type, from, converted)); } }