[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