From 9489fd596ecbfdbfac30d54d4b0190ee3c6402a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D0=BE=D0=BD=D0=B4=D0=B0=D1=80=D0=B5=D0=B2=20=D0=98?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD?= Date: Thu, 5 Apr 2018 20:54:02 +0200 Subject: [PATCH] bug fix #750 --- TestSuite/question5.pas | 6 ++++++ TreeConverter/TreeConversion/syntax_tree_visitor.cs | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 TestSuite/question5.pas diff --git a/TestSuite/question5.pas b/TestSuite/question5.pas new file mode 100644 index 000000000..8378330fb --- /dev/null +++ b/TestSuite/question5.pas @@ -0,0 +1,6 @@ +function f1 := 1; +function f2 := 0; +begin + var i := true ? f1 : f2; + assert(i = 1); +end. \ No newline at end of file diff --git a/TreeConverter/TreeConversion/syntax_tree_visitor.cs b/TreeConverter/TreeConversion/syntax_tree_visitor.cs index 2fbfead5d..2d3bee7e9 100644 --- a/TreeConverter/TreeConversion/syntax_tree_visitor.cs +++ b/TreeConverter/TreeConversion/syntax_tree_visitor.cs @@ -16777,7 +16777,8 @@ namespace PascalABCCompiler.TreeConverter condition = convertion_data_and_alghoritms.convert_type(condition, SystemLibrary.SystemLibrary.bool_type); expression_node left = convert_strong(node.ret_if_true); expression_node right = convert_strong(node.ret_if_false); - + try_convert_typed_expression_to_function_call(ref left); + try_convert_typed_expression_to_function_call(ref right); /*var typeComparisonResult = type_table.compare_types(left.type, right.type); if (typeComparisonResult == type_compare.greater_type) right = convertion_data_and_alghoritms.convert_type(right, left.type);