mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-28 12:29:13 +02:00
Codetools: Fix the scope of finding nested procedures. Issue #23994, patch by WooBean007.
This commit is contained in:
parent
27ca5f8137
commit
6dd342cef1
@ -6868,14 +6868,27 @@ var
|
|||||||
|
|
||||||
if AliasDeclarationNode<>nil then begin
|
if AliasDeclarationNode<>nil then begin
|
||||||
UseProcHead(AliasDeclarationNode);
|
UseProcHead(AliasDeclarationNode);
|
||||||
if DeclarationTool=Self then begin
|
Node:=DeclarationNode.Parent;
|
||||||
//debugln(['FindDeclarationNode adding alias node ...']);
|
while (Node<>nil) do begin
|
||||||
AddNodeReference(AliasDeclarationNode);
|
if Node.Desc = ctnProcedure then begin //here context is clearly limited
|
||||||
|
if Node.EndPos<AliasDeclarationNode.StartPos then begin
|
||||||
|
AliasDeclarationNode:=nil; //alias candidate out of context
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
Node:=Node.Parent;
|
||||||
end;
|
end;
|
||||||
if AliasDeclarationNode.StartPos>DeclarationNode.StartPos then begin
|
|
||||||
Node:=AliasDeclarationNode;
|
if AliasDeclarationNode<>nil then begin
|
||||||
AliasDeclarationNode:=DeclarationNode;
|
if DeclarationTool=Self then begin
|
||||||
DeclarationNode:=Node;
|
//debugln(['FindDeclarationNode adding alias node ...']);
|
||||||
|
AddNodeReference(AliasDeclarationNode);
|
||||||
|
end;
|
||||||
|
if AliasDeclarationNode.StartPos>DeclarationNode.StartPos then begin
|
||||||
|
Node:=AliasDeclarationNode;
|
||||||
|
AliasDeclarationNode:=DeclarationNode;
|
||||||
|
DeclarationNode:=Node;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user