[fpc-pascal] Changing var to out in rtl code

Max Vlasov max.vlasov at gmail.com
Sun Nov 21 16:22:14 CET 2010

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 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 what I should do to fix this, and the best solution for this is
changing the declaration from "var " to to "out " (CMIIW).

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.
For example TStrignList.Find(const S: string; var Index: Integer): Boolean;
declares "var " so my existing fragments expecting just an result from this
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 "var Index" to "out Index" and possibly it is also safe for any
delphi/lazarus code calling this method

I'm sure it is in any way not the first priority task (I can change the
corresponding calling fragments), but just interesting what others think
about it.


Max Vlasov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20101121/9ba7d8b6/attachment.html>

More information about the fpc-pascal mailing list