From 673e3882c9a7bd02be54ef122e99d50c700298ce Mon Sep 17 00:00:00 2001 From: Ivan Bondarev Date: Sun, 11 Sep 2022 14:42:14 +0200 Subject: [PATCH] #2704 --- TestSuite/question9.pas | 6 ++++++ .../TreeConversion/convertion_data_and_alghoritms.cs | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 TestSuite/question9.pas diff --git a/TestSuite/question9.pas b/TestSuite/question9.pas new file mode 100644 index 000000000..826aab2ae --- /dev/null +++ b/TestSuite/question9.pas @@ -0,0 +1,6 @@ +begin + var x := true ? byte(3) : byte(2); + assert(x.GetType = typeof(byte)); + var x1 := true ? word(4) : shortint(3); + assert(x1.GetType() = typeof(integer)); +end. \ No newline at end of file diff --git a/TreeConverter/TreeConversion/convertion_data_and_alghoritms.cs b/TreeConverter/TreeConversion/convertion_data_and_alghoritms.cs index 650ac3d69..2026ac07d 100644 --- a/TreeConverter/TreeConversion/convertion_data_and_alghoritms.cs +++ b/TreeConverter/TreeConversion/convertion_data_and_alghoritms.cs @@ -3033,9 +3033,10 @@ namespace PascalABCCompiler.TreeConverter tn1 = tn2; tn2 = t; } + if (n1 == n2) return tn1; // Первый тип - меньше или равен if ((int)n1 <= (int)int_types.integer_type && (int)n2 <= (int)int_types.integer_type) return SystemLibrary.SystemLibrary.integer_type; - if (n1 == n2) return tn1; + // Первый тип - меньше if ((int)n2 == (int)int_types.uint64_type) return SystemLibrary.SystemLibrary.uint64_type;