fcl-passrc: fixed IsTGUID

git-svn-id: trunk@48858 -
(cherry picked from commit 4ed82dcc1c)
This commit is contained in:
Mattias Gaertner 2021-03-01 21:25:03 +00:00 committed by Florian Klämpfl
parent edc9c0feab
commit 81701ddc76

View File

@ -29123,20 +29123,23 @@ function TPasResolver.IsTGUID(RecTypeEl: TPasRecordType): boolean;
var var
Members: TFPList; Members: TFPList;
El: TPasElement; El: TPasElement;
i, MemberIndex: Integer;
begin begin
Result:=false; Result:=false;
if not SameText(RecTypeEl.Name,'TGUID') then exit; if not SameText(RecTypeEl.Name,'TGUID') then exit;
if SameText(RecTypeEl.GetModule.Name,'system') then exit(true); if SameText(RecTypeEl.GetModule.Name,'system') then exit(true);
Members:=RecTypeEl.Members; Members:=RecTypeEl.Members;
if Members.Count<4 then exit; i:=1;
El:=TPasElement(Members[0]); for MemberIndex:=0 to Members.Count-1 do
if not SameText(El.Name,'D1') then exit; begin
El:=TPasElement(Members[1]); El:=TPasElement(Members[MemberIndex]);
if not SameText(El.Name,'D2') then exit; if (El.ClassType<>TPasVariable) then continue;
El:=TPasElement(Members[2]); if SameText(El.Name,'D'+IntToStr(i)) then
if not SameText(El.Name,'D3') then exit; begin
El:=TPasElement(Members[3]); if i=4 then exit(true);
if not SameText(El.Name,'D4') then exit; inc(i);
end;
end;
Result:=true; Result:=true;
end; end;