Skip to content

Commit f6c8a74

Browse files
author
automatic-merge
committed
Merge remote branch 'origin/master' into edge
2 parents a96258e + ee716fc commit f6c8a74

File tree

1 file changed

+27
-25
lines changed

1 file changed

+27
-25
lines changed

source/ada/lsp-ada_contexts.adb

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -190,9 +190,6 @@ package body LSP.Ada_Contexts is
190190
return; -- Name resolution fails, nothing to do.
191191
end if;
192192

193-
First_Part := Laltools.Common.Find_Canonical_Part
194-
(Definition, Self.Trace);
195-
196193
-- Display the method ancestry in three cases:
197194
--
198195
-- . When the preference is set to Always
@@ -209,6 +206,9 @@ package body LSP.Ada_Contexts is
209206
or else (Display_Method_Ancestry_Policy = Definition_Only
210207
and then On_Defining_Name)
211208
then
209+
First_Part := Laltools.Common.Find_Canonical_Part
210+
(Definition, Self.Trace);
211+
212212
if First_Part = Libadalang.Analysis.No_Defining_Name then
213213
Decl_For_Find_Overrides := Definition.P_Basic_Decl;
214214
else
@@ -232,28 +232,30 @@ package body LSP.Ada_Contexts is
232232
LSP.Lal_Utils.Append_Location (Result, Definition);
233233
end if;
234234

235-
declare
236-
Imprecise_Over : Boolean;
237-
Imprecise_Base : Boolean;
238-
Overriding_Subps : constant Basic_Decl_Array :=
239-
Self.Find_All_Overrides
240-
(Decl_For_Find_Overrides,
241-
Imprecise_Results => Imprecise_Over);
242-
Base_Subps : constant Basic_Decl_Array :=
243-
Self.Find_All_Base_Declarations
244-
(Decl_For_Find_Overrides,
245-
Imprecise_Results => Imprecise_Base);
246-
begin
247-
for Subp of Base_Subps loop
248-
Append_Location
249-
(Result, Subp.P_Defining_Name, LSP.Common.Is_Parent);
250-
end loop;
251-
for Subp of Overriding_Subps loop
252-
Append_Location
253-
(Result, Subp.P_Defining_Name, LSP.Common.Is_Child);
254-
end loop;
255-
Imprecise := Imprecise or Imprecise_Over or Imprecise_Base;
256-
end;
235+
if not Decl_For_Find_Overrides.Is_Null then
236+
declare
237+
Imprecise_Over : Boolean;
238+
Imprecise_Base : Boolean;
239+
Overriding_Subps : constant Basic_Decl_Array :=
240+
Self.Find_All_Overrides
241+
(Decl_For_Find_Overrides,
242+
Imprecise_Results => Imprecise_Over);
243+
Base_Subps : constant Basic_Decl_Array :=
244+
Self.Find_All_Base_Declarations
245+
(Decl_For_Find_Overrides,
246+
Imprecise_Results => Imprecise_Base);
247+
begin
248+
for Subp of Base_Subps loop
249+
Append_Location
250+
(Result, Subp.P_Defining_Name, LSP.Common.Is_Parent);
251+
end loop;
252+
for Subp of Overriding_Subps loop
253+
Append_Location
254+
(Result, Subp.P_Defining_Name, LSP.Common.Is_Child);
255+
end loop;
256+
Imprecise := Imprecise or Imprecise_Over or Imprecise_Base;
257+
end;
258+
end if;
257259
end Append_Declarations;
258260

259261
------------

0 commit comments

Comments
 (0)