With "Search Library Path" on, Project Dependencies looks up the source of a unit that the project file uses without an "in" clause only as <UnitName>.pas (TfmProjDepend.LoadFileDepend in GX_ProjDepend.pas). The project's unit scope names are not used.
In Delphi XE2 and later, a project file that says uses SysUtils;, as projects from older versions do, has a project module named SysUtils (seen in Delphi 13), but the source file is System.SysUtils.pas. The lookup tries only SysUtils.pas, does not find it and leaves the unit out, even with "Also search Browsing Path" on.
The lookup should also try <scope>.<UnitName>.pas for each unit scope name of the project (Ota.GetProjectNamespaces), in the order the compiler uses them.
Found in the review of the fix for [#567]. That the file is not found follows from the code and has not been tried in the IDE; the module name SysUtils was seen in Delphi 13.
Fixed in [r6042]. With "Search Library Path" on, Project Dependencies now also tries each of the project's unit scope names, so
SysUtilsis found asSystem.SysUtils.pas. The unit keeps the name the project file uses, so other units that use it under that name are linked to it. Default namespace, the project's own namespace, unit aliases and mixed spellings are left for [#576].Related
Bugs: #576
Commit: [r6042]