<br><br><div class="gmail_quote">On Sun, Nov 21, 2010 at 9:22 PM, Michael Van Canneyt <span dir="ltr"><<a href="mailto:michael@freepascal.org">michael@freepascal.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<div class="im"><br>
<br>
On Sun, 21 Nov 2010, Max Vlasov wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Hi,<br>
I'm one of those developers who takes hints and warnings seriously and I must say at least once a week it helps me find a bugs even before running the<br>
program. So when I got a warning about some uninitialized variable passed by reference (Delphi 5 is ok with such variable being uninitialized), I thought<br>
what I should do to fix this, and the best solution for this is changing the declaration from "var " to to "out " (CMIIW).<br>
<br>
But is it possible to do the same (partially, gradually or in any other way) for the "legacy" code that keeps the interface compatibility with Delphi.<br>
For example TStrignList.Find(const S: string; var Index: Integer): Boolean; declares "var " so my existing fragments expecting just an result from this<br>
call, got "Hint: Local variable "Index" does not seem to be initialized" warning. But looking at the implementation details it seems it is safe to change<br>
"var Index" to "out Index" and possibly it is also safe for any delphi/lazarus code calling this method<br>
</blockquote>
<br></div>
For this particular instance, I changed the code. (rev 16395)<br>
But in general, one must be careful with changing such things.<br><font color="#888888">
</font><br></blockquote></div><br>Michael, great to hear, the only thing I didn't notice initially (sorry), is that it's a virtual method. The change would probably break inheritance in some cases for some developers, but I just can't imagine someone overriding TStringList.Find since its logic is completely full and content for ages and even if so, probably making such small fix should not be a problem. Sorry again.<br>

<br>Max Vlasov<br>