mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-14 14:59:22 +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
|
||||
UseProcHead(AliasDeclarationNode);
|
||||
if DeclarationTool=Self then begin
|
||||
//debugln(['FindDeclarationNode adding alias node ...']);
|
||||
AddNodeReference(AliasDeclarationNode);
|
||||
Node:=DeclarationNode.Parent;
|
||||
while (Node<>nil) do begin
|
||||
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;
|
||||
if AliasDeclarationNode.StartPos>DeclarationNode.StartPos then begin
|
||||
Node:=AliasDeclarationNode;
|
||||
AliasDeclarationNode:=DeclarationNode;
|
||||
DeclarationNode:=Node;
|
||||
|
||||
if AliasDeclarationNode<>nil then begin
|
||||
if DeclarationTool=Self then begin
|
||||
//debugln(['FindDeclarationNode adding alias node ...']);
|
||||
AddNodeReference(AliasDeclarationNode);
|
||||
end;
|
||||
if AliasDeclarationNode.StartPos>DeclarationNode.StartPos then begin
|
||||
Node:=AliasDeclarationNode;
|
||||
AliasDeclarationNode:=DeclarationNode;
|
||||
DeclarationNode:=Node;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user