2014-09-16 12:36 GMT+02:00 Frederic Da Vitoria <davito...@gmail.com>:
> 2014-09-16 12:26 GMT+02:00 Philippe <phili...@quarta.com.br>: > >> Em 16.09.2014 05:44, Frederic Da Vitoria escreveu: >> >> 2014-09-14 16:23 GMT+02:00 Mark Morgan Lloyd < >> markmll.fpc-pas...@telemetry.co.uk>: >> >>> I'd be far happier if there were provision for declaring a temporary >>> "shortcut" symbol: >>> >>> with shortcut: TSomething= TreeRoot.SubDirs[Low(TreeRoot.SubDirs)]^ do >>> begin >>> shortcut.DirLogged := true; >>> shortcut.DirHatFocus := false; >>> shortcut.SubDirsExpanded := true; >>> >> >> Yes, something close to alias in SQL, instead of plain elision which >> "with" currently performs. This would allow for a clearer writing without >> the pitfalls of the Pascal "with". >> >> >> could the compiler avoid "with" pitfalls? >> >> now the compiler attach a property to the closest "with" where it finds >> it. >> >> the compiler could check if the property appears in another "with" of the >> "with" stack and produce a message (hint, warning or error, which may be >> configurated). >> >> is not it a way to make the "with" safe? >> > > I don't think it would make it safe, only slightly safer. Imagine: you are > using 2 nested "with" which have a field with the same name. The compiler > would tell you so. You'd check and decide that it's OK because you really > intended to mean the internal "with". Then, later, you remove or rename the > field which is used in the internal "with". The compiler won't send you any > warning since you will have removed a danger. But the meaning of your code > will have changed and will now be wrong. Will you remember that there was a > warning before and will you realize that the fact this warning disappeared > means trouble? > Your suggestion would be safe if the option was configured to "error". Then, in such a situation, the developer would have to fully qualify each ambiguous field which should remove any chance of error. -- Frederic Da Vitoria (davitof) Membre de l'April - « promouvoir et défendre le logiciel libre » - http://www.april.org
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal