@@ -185,9 +185,6 @@ package body LSP.Ada_Contexts is
185
185
return ; -- Name resolution fails, nothing to do.
186
186
end if ;
187
187
188
- First_Part := Laltools.Common.Find_Canonical_Part
189
- (Definition, Self.Trace);
190
-
191
188
-- Display the method ancestry in three cases:
192
189
--
193
190
-- . When the preference is set to Always
@@ -204,6 +201,9 @@ package body LSP.Ada_Contexts is
204
201
or else (Display_Method_Ancestry_Policy = Definition_Only
205
202
and then On_Defining_Name)
206
203
then
204
+ First_Part := Laltools.Common.Find_Canonical_Part
205
+ (Definition, Self.Trace);
206
+
207
207
if First_Part = Libadalang.Analysis.No_Defining_Name then
208
208
Decl_For_Find_Overrides := Definition.P_Basic_Decl;
209
209
else
@@ -227,28 +227,30 @@ package body LSP.Ada_Contexts is
227
227
LSP.Lal_Utils.Append_Location (Result, Definition);
228
228
end if ;
229
229
230
- declare
231
- Imprecise_Over : Boolean;
232
- Imprecise_Base : Boolean;
233
- Overriding_Subps : constant Basic_Decl_Array :=
234
- Self.Find_All_Overrides
235
- (Decl_For_Find_Overrides,
236
- Imprecise_Results => Imprecise_Over);
237
- Base_Subps : constant Basic_Decl_Array :=
238
- Self.Find_All_Base_Declarations
239
- (Decl_For_Find_Overrides,
240
- Imprecise_Results => Imprecise_Base);
241
- begin
242
- for Subp of Base_Subps loop
243
- Append_Location
244
- (Result, Subp.P_Defining_Name, LSP.Common.Is_Parent);
245
- end loop ;
246
- for Subp of Overriding_Subps loop
247
- Append_Location
248
- (Result, Subp.P_Defining_Name, LSP.Common.Is_Child);
249
- end loop ;
250
- Imprecise := Imprecise or Imprecise_Over or Imprecise_Base;
251
- end ;
230
+ if not Decl_For_Find_Overrides.Is_Null then
231
+ declare
232
+ Imprecise_Over : Boolean;
233
+ Imprecise_Base : Boolean;
234
+ Overriding_Subps : constant Basic_Decl_Array :=
235
+ Self.Find_All_Overrides
236
+ (Decl_For_Find_Overrides,
237
+ Imprecise_Results => Imprecise_Over);
238
+ Base_Subps : constant Basic_Decl_Array :=
239
+ Self.Find_All_Base_Declarations
240
+ (Decl_For_Find_Overrides,
241
+ Imprecise_Results => Imprecise_Base);
242
+ begin
243
+ for Subp of Base_Subps loop
244
+ Append_Location
245
+ (Result, Subp.P_Defining_Name, LSP.Common.Is_Parent);
246
+ end loop ;
247
+ for Subp of Overriding_Subps loop
248
+ Append_Location
249
+ (Result, Subp.P_Defining_Name, LSP.Common.Is_Child);
250
+ end loop ;
251
+ Imprecise := Imprecise or Imprecise_Over or Imprecise_Base;
252
+ end ;
253
+ end if ;
252
254
end Append_Declarations ;
253
255
254
256
-- ----------
0 commit comments