Skip to content

Commit

Permalink
Merge branch 'topic/1260' into 'master'
Browse files Browse the repository at this point in the history
gnat_xref: add support for deferred constants

Closes #1260

See merge request eng/libadalang/libadalang!1527
  • Loading branch information
thvnx committed Feb 16, 2024
2 parents 674b125 + 3dae3a6 commit 1579fae
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 0 deletions.
6 changes: 6 additions & 0 deletions ada/ast.py
Original file line number Diff line number Diff line change
Expand Up @@ -1650,6 +1650,12 @@ def gnat_xref():
lambda p: p.is_a(T.GenericDecl)
).cast(T.GenericDecl).decl.defining_name,

# Deferred constants case
bd._.is_a(T.ObjectDecl)
& Not(bd.cast(T.ObjectDecl).has_constant.is_null)
& bd.is_in_private_part,
Entity.cast(T.Name).enclosing_defining_name.previous_part,

bd.then(lambda bd: bd.is_a(T.DiscriminantSpec)),
bd.semantic_parent.cast(T.BasicDecl).defining_name,

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
project Prj is
for Source_Dirs use (".");
for Main use ("test.adb");
end Prj;
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
procedure Test is
package P is
U, V : constant Integer;
private
U, V : constant Integer := 1;
end P;
begin
null;
end Test;
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
== test.adb ==
test.adb:1:11 => test.adb:1:11 (LAL: ok)
test.adb:5:7 => test.adb:3:7 (LAL: ok)
test.adb:5:10 => test.adb:3:10 (LAL: ok)
test.adb:6:8 => test.adb:2:12 (LAL: ok)
test.adb:9:5 => test.adb:1:11 (LAL: ok)

Stats:
GNAT xrefs have 5 entries
LAL xrefs have:
* 5 OK entries (100.00%)
* 0 DIFFERENT entries (0.00%)
* 0 ERROR entries (0.00%)
* 0 MISSING entries (0.00%)
* 0 ADDITIONAL entries (0.00%)
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
driver: gnat-compare
project_file: prj.gpr

0 comments on commit 1579fae

Please sign in to comment.