[Lazarus] Redundant assigned(X) and (X is Txxx) in Laz. sources

Dennis dec12 at avidsoft.com.hk
Sat Jan 13 06:01:33 CET 2018



Mattias Gaertner via Lazarus wrote:
> On Fri, 12 Jan 2018 21:44:47 +0200
> Juha Manninen via Lazarus <lazarus at lists.lazarus-ide.org> wrote:
>
>> On Fri, Jan 12, 2018 at 8:38 PM, Vojtěch Čihák via Lazarus
>> <lazarus at lists.lazarus-ide.org> wrote:
>>> I wrote a small routine to search Lazarus sources and it found about 60
>>> places similar to this (taborderdlg.pas, line 398):
>>>
>>> if Assigned(LookupRoot) and (LookupRoot is TWinControl) then begin
>>>
>>> Should I make a patch for all occurences?
>> Yes, I think the patch would be applied.
>> IIRC "is" was not allowed with Nil references in old FPC versions but
>> it was a long time ago.
> No, "is" was always checking for nil.
> Maybe some people are confused by "as", which does not check for nil.
>
> Mattias

I am now confused, so
in FPC,  it is safe to just use:   if  LookupRoot is TWinControl
   instead of
      if assigned(LookupRoot) and (LookupRoot is TWinControl) then ....


is it safe to
    with LookupRoot as TWinControl do begin
        ....
    end;

or should I always
    if assigned(LookupRoot) then
      with LookupRoot as TWinControl do begin
          ....
      end;

Dennis



More information about the Lazarus mailing list