@@ -190,9 +190,6 @@ package body LSP.Ada_Contexts is
190
190
return ; -- Name resolution fails, nothing to do.
191
191
end if ;
192
192
193
- First_Part := Laltools.Common.Find_Canonical_Part
194
- (Definition, Self.Trace);
195
-
196
193
-- Display the method ancestry in three cases:
197
194
--
198
195
-- . When the preference is set to Always
@@ -209,6 +206,9 @@ package body LSP.Ada_Contexts is
209
206
or else (Display_Method_Ancestry_Policy = Definition_Only
210
207
and then On_Defining_Name)
211
208
then
209
+ First_Part := Laltools.Common.Find_Canonical_Part
210
+ (Definition, Self.Trace);
211
+
212
212
if First_Part = Libadalang.Analysis.No_Defining_Name then
213
213
Decl_For_Find_Overrides := Definition.P_Basic_Decl;
214
214
else
@@ -232,28 +232,30 @@ package body LSP.Ada_Contexts is
232
232
LSP.Lal_Utils.Append_Location (Result, Definition);
233
233
end if ;
234
234
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 ;
257
259
end Append_Declarations ;
258
260
259
261
-- ----------
0 commit comments