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 s := 'abc def';
|
||||||
var arr : array of string := s.ToWords;
|
var arr : array of string := s.ToWords;
|
||||||
assert(arr[0] = 'abc');
|
assert(arr[0] = 'abc');
|
||||||
writeln(s.ToWords);
|
|
||||||
end.
|
end.
|
||||||
|
|
@ -1625,7 +1625,9 @@ namespace PascalABCCompiler.TreeConverter
|
||||||
}
|
}
|
||||||
else if ((exprs.Count < fn.parameters.Count) && (fn.node_kind == SemanticTree.node_kind.compiled))
|
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);
|
statements_expression_node sre = new statements_expression_node(ptcal.snl, ptcal.var_ref, ptcal.var_ref.location);
|
||||||
exprs.AddElement(sre);
|
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)
|
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);
|
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)
|
if (set_of_possible_functions.Count==0 && indefinits.Count == 0)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue