diff --git a/TestSuite/InOpFun.pas b/TestSuite/InOpFun.pas new file mode 100644 index 000000000..7434247ce --- /dev/null +++ b/TestSuite/InOpFun.pas @@ -0,0 +1,7 @@ +begin + var s := 'abc'; + var hs := HSet(s); + + Assert(s.ToLower() in hs); + Assert(s.ToLower in hs); +end. \ No newline at end of file diff --git a/TreeConverter/TreeConversion/syntax_tree_visitor.cs b/TreeConverter/TreeConversion/syntax_tree_visitor.cs index 6acc6b53f..af4b6a750 100644 --- a/TreeConverter/TreeConversion/syntax_tree_visitor.cs +++ b/TreeConverter/TreeConversion/syntax_tree_visitor.cs @@ -17038,6 +17038,8 @@ namespace PascalABCCompiler.TreeConverter { expression_node left = convert_strong(_bin_expr.left); expression_node right = convert_strong(_bin_expr.right); + if (_bin_expr.operation_type == Operators.In) + try_convert_typed_expression_to_function_call(ref left); expression_node res = find_operator(_bin_expr.operation_type, left, right, get_location(_bin_expr)); if (res.type is undefined_type) diff --git a/bin/Lib/Robot.pas b/bin/Lib/Robot.pas index 82cddd717..25846ac70 100644 --- a/bin/Lib/Robot.pas +++ b/bin/Lib/Robot.pas @@ -397,6 +397,10 @@ begin RegisterTask('p14',p14); RegisterTask('p15',p15); + RegisterTask('ps1',ps1); + RegisterTask('ps2',ps2); + RegisterTask('ps3',ps3); + RegisterTask('pp1',pp1); RegisterTask('pp2',pp2); RegisterTask('pp3',pp3); diff --git a/bin/Lib/RobotZadan.pas b/bin/Lib/RobotZadan.pas index 0e2112ac8..4f7a316d6 100644 --- a/bin/Lib/RobotZadan.pas +++ b/bin/Lib/RobotZadan.pas @@ -1,4 +1,4 @@ -// Copyright (c) Ivan Bondarev, Stanislav Mihalkovich (for details please see \doc\copyright.txt) +// Copyright (c) Ivan Bondarev, Stanislav Mihalkovich (for details please see \doc\copyright.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) unit RobotZadan; @@ -144,6 +144,10 @@ procedure p13; procedure p14; procedure p15; +procedure ps1; +procedure ps2; +procedure ps3; + procedure pp1; procedure pp2; procedure pp3; @@ -2396,6 +2400,22 @@ begin end end; +procedure ps1; +begin + TaskText('Задание ps1. Закрасить помеченные клетки, составив процедуру'); + +end; + +procedure ps2; +begin + TaskText('Задание ps1. Закрасить помеченные клетки, составив процедуру'); +end; + +procedure ps3; +begin + TaskText('Задание ps1. Закрасить помеченные клетки, составив процедуру'); +end; + procedure pp1; var i: integer; begin