Skip to content

Commit c4d84d7

Browse files
committed
gnatcoll-projects.adb: minor refactoring
TN: V816-018 Change-Id: Iea8dccfc26f740ee624eef729bf85063004577a8
1 parent 85e7600 commit c4d84d7

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

src/gnatcoll-projects.adb

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1058,6 +1058,10 @@ package body GNATCOLL.Projects is
10581058
procedure Process_Project (Project : Project_Type);
10591059
-- Process Project and append to List all relevant ALI files
10601060

1061+
function Is_File_Based (SFD : Source_File_Data) return Boolean;
1062+
-- Return whether the source file designated by SFD belongs to a
1063+
-- file-based language (i.e. not a unit-based language, like Ada).
1064+
10611065
Local_Obj_Map : Names_Files.Map;
10621066

10631067
-------------------
@@ -1095,11 +1099,7 @@ package body GNATCOLL.Projects is
10951099
SFD := Element (Cur);
10961100

10971101
loop
1098-
if Get_Language_From_Name
1099-
(Get_View (SFD.Project),
1100-
Get_String (SFD.Lang))
1101-
.Config.Kind = Unit_Based
1102-
then
1102+
if not Is_File_Based (SFD) then
11031103

11041104
Iter := Start (Extending_Project (Root, True));
11051105
while Current (Iter) /= No_Project loop
@@ -1148,11 +1148,7 @@ package body GNATCOLL.Projects is
11481148
-- instead of an inner iterator, so that library projects aggregated
11491149
-- in a library aggregate are also considered
11501150
loop
1151-
if Get_Language_From_Name
1152-
(Get_View (SFD.Project),
1153-
Get_String (SFD.Lang))
1154-
.Config.Kind = File_Based
1155-
then
1151+
if Is_File_Based (SFD) then
11561152

11571153
-- We can have as much c/c++ files with same name as possible.
11581154
-- So what we need to do is only iterate through extended
@@ -1435,6 +1431,18 @@ package body GNATCOLL.Projects is
14351431
& Dir.Display_Full_Name);
14361432
end Process_Project;
14371433

1434+
-------------------
1435+
-- Is_File_Based --
1436+
-------------------
1437+
1438+
function Is_File_Based (SFD : Source_File_Data) return Boolean is
1439+
Language : constant Language_Ptr :=
1440+
Get_Language_From_Name
1441+
(Get_View (SFD.Project), Get_String (SFD.Lang));
1442+
begin
1443+
return Language.Config.Kind = File_Based;
1444+
end Is_File_Based;
1445+
14381446
begin
14391447
if Is_Aggregate_Project (Self) then
14401448
if Active (Me) then

0 commit comments

Comments
 (0)