diff --git a/TestSuite/errors/err0500.pas b/TestSuite/errors/err0500.pas new file mode 100644 index 000000000..61f69963a --- /dev/null +++ b/TestSuite/errors/err0500.pas @@ -0,0 +1,7 @@ +//!Нельзя преобразовать тип integer к string +uses GraphWPF,Controls; + +begin + var sb := StatusBar; + sb.Text := Milliseconds; +end. \ No newline at end of file diff --git a/TreeConverter/TreeConversion/SyntaxTreeVisitorNodes/Assign.cs b/TreeConverter/TreeConversion/SyntaxTreeVisitorNodes/Assign.cs index 320003628..4727084d8 100644 --- a/TreeConverter/TreeConversion/SyntaxTreeVisitorNodes/Assign.cs +++ b/TreeConverter/TreeConversion/SyntaxTreeVisitorNodes/Assign.cs @@ -320,6 +320,8 @@ namespace PascalABCCompiler.TreeConverter } check_property_params(spr, loc); function_node set_func = spr.property.set_function; + if (from.type is delegated_methods && !spr.property.property_type.IsDelegate) + from = convert_if_typed_expression_to_function_call(from, true); from = convertion_data_and_alghoritms.convert_type(from, spr.property.property_type); spr.fact_parametres.AddElement(from); base_function_call bfc = create_static_method_call(set_func, loc, @@ -332,6 +334,8 @@ namespace PascalABCCompiler.TreeConverter { non_static_property_reference nspr = (non_static_property_reference) to; check_property_params(nspr, loc); + if (from.type is delegated_methods && !nspr.property.property_type.IsDelegate) + from = convert_if_typed_expression_to_function_call(from, true); from = convertion_data_and_alghoritms.convert_type(from, nspr.property.property_type); nspr.fact_parametres.AddElement(from);