parent
4893429c2b
commit
16274ab958
4
TestSuite/errors/err0401.pas
Normal file
4
TestSuite/errors/err0401.pas
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
begin
|
||||
var s: sequence of byte;
|
||||
var e: IEnumerator<char> := s.OrderBy(b->b).GetEnumerator;
|
||||
end.
|
||||
9
TestSuite/generics45.pas
Normal file
9
TestSuite/generics45.pas
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
begin
|
||||
var s: sequence of integer := Arr(3,2,1).AsEnumerable();
|
||||
var e: IEnumerator<integer> := s.OrderBy(b->b).GetEnumerator;
|
||||
e.MoveNext();
|
||||
assert(e.Current = 1);
|
||||
var e2: IEnumerator<integer> := s.OrderBy(b->b).GetEnumerator();
|
||||
e2.MoveNext();
|
||||
assert(e2.Current = 1);
|
||||
end.
|
||||
6
TestSuite/generics46.pas
Normal file
6
TestSuite/generics46.pas
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
begin
|
||||
var o: ICollection<integer> := Arr(1,2,3);
|
||||
var enm: IEnumerator<integer> := o.GetEnumerator;
|
||||
enm.MoveNext();
|
||||
assert(enm.Current = 1);
|
||||
end.
|
||||
|
|
@ -663,7 +663,7 @@ namespace PascalABCCompiler.TreeConverter
|
|||
en.location = loc;
|
||||
if (en.type is delegated_methods dm && dm.proper_methods[0].parameters.Count == 0 && dm.proper_methods[0].ret_type != null)
|
||||
{
|
||||
if (to != SystemLibrary.SystemLibrary.object_type)
|
||||
if (to != SystemLibrary.SystemLibrary.object_type && to.IsDelegate)
|
||||
AddError(new CanNotConvertTypes(en, dm.proper_methods[0].ret_type, to, loc)); // SSM 18/06/20 #2261
|
||||
else
|
||||
return en;
|
||||
|
|
|
|||
|
|
@ -16570,6 +16570,13 @@ namespace PascalABCCompiler.TreeConverter
|
|||
_var_def_statement.inital_value = get_possible_array_const(_var_def_statement.inital_value,tn);
|
||||
var ivc = convert_strong(_var_def_statement.inital_value);
|
||||
inital_value = convert_strong_to_constant_or_function_call_for_varinit(ivc, tn);
|
||||
if (!tn.IsDelegate && tn != SystemLibrary.SystemLibrary.object_type && inital_value is typed_expression && _var_def_statement.inital_value is addressed_value)
|
||||
{
|
||||
method_call mc = new method_call();
|
||||
mc.dereferencing_value = _var_def_statement.inital_value as addressed_value;
|
||||
ivc = convert_strong(mc);
|
||||
inital_value = convert_strong_to_constant_or_function_call_for_varinit(ivc, tn);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
|||
Loading…
Reference in a new issue