diff --git a/TestSuite/delegates22.pas b/TestSuite/delegates22.pas new file mode 100644 index 000000000..0c4f735d8 --- /dev/null +++ b/TestSuite/delegates22.pas @@ -0,0 +1,10 @@ +procedure pr1(act: (sequence of integer)-> ()); +begin + act(Arr(1,2,3)); +end; +var l: integer; + +begin + pr1(x-> begin l := x.Count end); + assert(l = 3); +end. \ No newline at end of file diff --git a/TreeConverter/TreeConversion/syntax_tree_visitor.cs b/TreeConverter/TreeConversion/syntax_tree_visitor.cs index 7a3ed0f1f..d93a0fd4d 100644 --- a/TreeConverter/TreeConversion/syntax_tree_visitor.cs +++ b/TreeConverter/TreeConversion/syntax_tree_visitor.cs @@ -21079,8 +21079,8 @@ namespace PascalABCCompiler.TreeConverter if (en.enumerators[i].value != null) AddError(get_location(en.enumerators[i].name), "ONE_TKIDENTIFIER"); - if (!(en.enumerators[i].name is named_type_reference) && !(en.enumerators[i].name is array_type)) - AddError(get_location(en.enumerators[i].name), "ONE_TKIDENTIFIER"); + //if (!(en.enumerators[i].name is named_type_reference) && !(en.enumerators[i].name is array_type)) + // AddError(get_location(en.enumerators[i].name), "ONE_TKIDENTIFIER"); t.Add(en.enumerators[i].name); // ??????????????? } @@ -21109,8 +21109,8 @@ namespace PascalABCCompiler.TreeConverter if (en.enumerators[i].value != null) AddError(get_location(en.enumerators[i].name), "ONE_TKIDENTIFIER"); - if (!(en.enumerators[i].name is named_type_reference) && !(en.enumerators[i].name is array_type)) - AddError(get_location(en.enumerators[i].name), "ONE_TKIDENTIFIER"); + //if (!(en.enumerators[i].name is named_type_reference) && !(en.enumerators[i].name is array_type)) + // AddError(get_location(en.enumerators[i].name), "ONE_TKIDENTIFIER"); t.Add(en.enumerators[i].name); }