[fpc-pascal] with statement using mulltiple objects
Frederic Da Vitoria
davitofrg at gmail.com
Tue Sep 16 12:39:11 CEST 2014
2014-09-16 12:36 GMT+02:00 Frederic Da Vitoria <davitofrg at gmail.com>:
> 2014-09-16 12:26 GMT+02:00 Philippe <philippe at 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-pascal at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20140916/3827c7a7/attachment.html>
More information about the fpc-pascal
mailing list