bug fix s.ToWords() from pabcrtl.dll
This commit is contained in:
parent
44eb7e8b32
commit
aad1437f36
12
TestSuite/extensionmethods13.pas
Normal file
12
TestSuite/extensionmethods13.pas
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
begin
|
||||
var res := Seq('234 456','222 333').Select(s->s.ToWords).Select(ss->Rec(ss[0],ss[1].ToInteger));
|
||||
var ind := 0;
|
||||
foreach tup: System.Tuple<string, integer> in res do
|
||||
begin
|
||||
if ind = 0 then
|
||||
assert(tup.Item2 = 456)
|
||||
else
|
||||
assert(tup.Item2 = 333);
|
||||
Inc(ind);
|
||||
end;
|
||||
end.
|
||||
|
|
@ -2,5 +2,4 @@ begin
|
|||
var s := 'abc def';
|
||||
var arr : array of string := s.ToWords;
|
||||
assert(arr[0] = 'abc');
|
||||
writeln(s.ToWords);
|
||||
end.
|
||||
|
|
@ -1625,7 +1625,9 @@ namespace PascalABCCompiler.TreeConverter
|
|||
}
|
||||
else if ((exprs.Count < fn.parameters.Count) && (fn.node_kind == SemanticTree.node_kind.compiled))
|
||||
{
|
||||
if (exprs.Count == 0 && fn.parameters != null && fn.parameters.Count == 1 && fn.parameters[0].is_params)
|
||||
if (exprs.Count == 0 && fn.parameters != null && fn.parameters.Count == 1 && fn.parameters[0].is_params ||
|
||||
exprs.Count == 1 && fn.parameters != null && fn is compiled_function_node && (fn as compiled_function_node).ConnectedToType != null &&
|
||||
fn.parameters.Count == 2 && fn.parameters[1].is_params)
|
||||
{
|
||||
statements_expression_node sre = new statements_expression_node(ptcal.snl, ptcal.var_ref, ptcal.var_ref.location);
|
||||
exprs.AddElement(sre);
|
||||
|
|
@ -1820,7 +1822,10 @@ namespace PascalABCCompiler.TreeConverter
|
|||
}
|
||||
else if (parameters.Count == 1 && fn is common_namespace_function_node && (fn as common_namespace_function_node).ConnectedToType != null && fn.parameters.Count == 2 && fn.parameters[1].is_params)
|
||||
set_of_possible_functions.AddElement(fn);
|
||||
functions=functions.Next;
|
||||
else if (parameters.Count == 1 && fn is compiled_function_node && (fn as compiled_function_node).ConnectedToType != null && fn.parameters.Count == 2 && fn.parameters[1].is_params)
|
||||
if (!set_of_possible_functions.Contains(fn))
|
||||
set_of_possible_functions.AddElement(fn);
|
||||
functions =functions.Next;
|
||||
}
|
||||
|
||||
if (set_of_possible_functions.Count==0 && indefinits.Count == 0)
|
||||
|
|
|
|||
Loading…
Reference in a new issue