<div dir="auto"><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Ryan Joseph <<a href="mailto:genericptr@gmail.com">genericptr@gmail.com</a>> schrieb am So., 13. Okt. 2019, 16:22:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
> On Oct 13, 2019, at 5:58 AM, Sven Barth via fpc-pascal <<a href="mailto:fpc-pascal@lists.freepascal.org" target="_blank" rel="noreferrer">fpc-pascal@lists.freepascal.org</a>> wrote:<br>
> <br>
>> Delphi does not allow it:<br>
>> <br>
>> [dcc32 Error] Project1.dpr(18): E1019 For loop control variable must be simple local variable<br>
>> <br>
>> I don't think this should be allowed, either.<br>
> <br>
> Same.<br>
<br>
Why not?<br>
<br>
I just had this problem on 9/26, search for “for-in loop cast”. What if I have a list of TObjects I want to iterate? I know TMyClass is safe to use but the compiler complains so I override it with a typecast. If you take that away I’ll have to do tons of casting outside of the loop.  <br>
<br>
var<br>
  arr: specialize TFPGObjectList<TObject>;<br>
  obj: TMyClass;<br>
begin<br>
  arr := specialize TFPGObjectList<TObject>.Create;<br>
  arr.Add(TObject.Create);<br>
  // Incompatible types: got "TObject" expected "TMyClass"<br>
  for obj in arr do<br>
    begin<br>
    end;<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Then specialize the list with the correct type. </div><div dir="auto"><br></div><div dir="auto">This issue *will* be fixed and is not up to discussion. </div><div dir="auto"><br></div><div dir="auto">Regards, </div><div dir="auto">Sven </div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
</blockquote></div></div></div>