@@ -850,74 +850,90 @@ void ModuleDependenciesCache::removeDependency(ModuleDependencyID moduleID) {
850850 map.erase (moduleID.ModuleName );
851851}
852852
853- void
854- ModuleDependenciesCache::setImportedSwiftDependencies ( ModuleDependencyID moduleID,
855- const ArrayRef<ModuleDependencyID> dependencyIDs) {
853+ void ModuleDependenciesCache::setImportedSwiftDependencies (
854+ ModuleDependencyID moduleID,
855+ const ArrayRef<ModuleDependencyID> dependencyIDs) {
856856 auto dependencyInfo = findKnownDependency (moduleID);
857857 assert (dependencyInfo.getImportedSwiftDependencies ().empty ());
858858#ifndef NDEBUG
859859 for (const auto &depID : dependencyIDs)
860860 assert (depID.Kind != ModuleDependencyKind::Clang);
861861#endif
862- // Copy the existing info to a mutable one we can then replace it with, after setting its overlay dependencies.
862+ // Copy the existing info to a mutable one we can then replace it with, after
863+ // setting its overlay dependencies.
863864 auto updatedDependencyInfo = dependencyInfo;
864865 updatedDependencyInfo.setImportedSwiftDependencies (dependencyIDs);
865866 updateDependency (moduleID, updatedDependencyInfo);
866867}
867- void
868- ModuleDependenciesCache::setImportedClangDependencies ( ModuleDependencyID moduleID,
869- const ArrayRef<ModuleDependencyID> dependencyIDs) {
868+ void ModuleDependenciesCache::setImportedClangDependencies (
869+ ModuleDependencyID moduleID,
870+ const ArrayRef<ModuleDependencyID> dependencyIDs) {
870871 auto dependencyInfo = findKnownDependency (moduleID);
871872 assert (dependencyInfo.getImportedClangDependencies ().empty ());
872873#ifndef NDEBUG
873874 for (const auto &depID : dependencyIDs)
874875 assert (depID.Kind == ModuleDependencyKind::Clang);
875876#endif
876- // Copy the existing info to a mutable one we can then replace it with, after setting its overlay dependencies.
877+ // Copy the existing info to a mutable one we can then replace it with, after
878+ // setting its overlay dependencies.
877879 auto updatedDependencyInfo = dependencyInfo;
878880 updatedDependencyInfo.setImportedClangDependencies (dependencyIDs);
879881 updateDependency (moduleID, updatedDependencyInfo);
880882}
881- void
882- ModuleDependenciesCache::setHeaderClangDependencies ( ModuleDependencyID moduleID,
883- const ArrayRef<ModuleDependencyID> dependencyIDs) {
883+ void ModuleDependenciesCache::setHeaderClangDependencies (
884+ ModuleDependencyID moduleID,
885+ const ArrayRef<ModuleDependencyID> dependencyIDs) {
884886 auto dependencyInfo = findKnownDependency (moduleID);
885887#ifndef NDEBUG
886888 for (const auto &depID : dependencyIDs)
887889 assert (depID.Kind == ModuleDependencyKind::Clang);
888890#endif
889- // Copy the existing info to a mutable one we can then replace it with, after setting its overlay dependencies.
891+ // Copy the existing info to a mutable one we can then replace it with, after
892+ // setting its overlay dependencies.
890893 auto updatedDependencyInfo = dependencyInfo;
891894 updatedDependencyInfo.setHeaderClangDependencies (dependencyIDs);
892895 updateDependency (moduleID, updatedDependencyInfo);
893896}
894- void ModuleDependenciesCache::setSwiftOverlayDependencies (ModuleDependencyID moduleID,
895- const ArrayRef<ModuleDependencyID> dependencyIDs) {
897+ void ModuleDependenciesCache::setSwiftOverlayDependencies (
898+ ModuleDependencyID moduleID,
899+ const ArrayRef<ModuleDependencyID> dependencyIDs) {
896900 auto dependencyInfo = findKnownDependency (moduleID);
897901 assert (dependencyInfo.getSwiftOverlayDependencies ().empty ());
898902#ifndef NDEBUG
899903 for (const auto &depID : dependencyIDs)
900904 assert (depID.Kind != ModuleDependencyKind::Clang);
901905#endif
902- // Copy the existing info to a mutable one we can then replace it with, after setting its overlay dependencies.
906+ // Copy the existing info to a mutable one we can then replace it with, after
907+ // setting its overlay dependencies.
903908 auto updatedDependencyInfo = dependencyInfo;
904909 updatedDependencyInfo.setSwiftOverlayDependencies (dependencyIDs);
905910 updateDependency (moduleID, updatedDependencyInfo);
906911}
907- void
908- ModuleDependenciesCache::setCrossImportOverlayDependencies ( ModuleDependencyID moduleID,
909- const ArrayRef<ModuleDependencyID> dependencyIDs) {
912+ void ModuleDependenciesCache::setCrossImportOverlayDependencies (
913+ ModuleDependencyID moduleID,
914+ const ModuleDependencyIDCollectionView dependencyIDs) {
910915 auto dependencyInfo = findKnownDependency (moduleID);
911916 assert (dependencyInfo.getCrossImportOverlayDependencies ().empty ());
912- // Copy the existing info to a mutable one we can then replace it with, after setting its overlay dependencies.
917+ // Copy the existing info to a mutable one we can then replace it with,
918+ // after setting its overlay dependencies.
913919 auto updatedDependencyInfo = dependencyInfo;
914920 updatedDependencyInfo.setCrossImportOverlayDependencies (dependencyIDs);
915921 updateDependency (moduleID, updatedDependencyInfo);
916922}
917923
918- void
919- ModuleDependenciesCache::addVisibleClangModules (ModuleDependencyID moduleID,
920- const std::vector<std::string> &moduleNames) {
924+ ModuleDependencyIDCollectionView ModuleDependenciesCache::getAllDependencies (
925+ const ModuleDependencyID &moduleID) const {
926+ const auto &moduleInfo = findKnownDependency (moduleID);
927+ return ModuleDependencyIDCollectionView (
928+ moduleInfo.getImportedSwiftDependencies (),
929+ moduleInfo.getHeaderClangDependencies (),
930+ moduleInfo.getSwiftOverlayDependencies (),
931+ moduleInfo.getCrossImportOverlayDependencies (),
932+ moduleInfo.getImportedClangDependencies ());
933+ }
934+
935+ void ModuleDependenciesCache::addVisibleClangModules (
936+ ModuleDependencyID moduleID, const std::vector<std::string> &moduleNames) {
921937 if (moduleNames.empty ())
922938 return ;
923939 auto dependencyInfo = findKnownDependency (moduleID);
@@ -926,88 +942,67 @@ ModuleDependenciesCache::addVisibleClangModules(ModuleDependencyID moduleID,
926942 updateDependency (moduleID, updatedDependencyInfo);
927943}
928944
929- llvm::StringSet<> &ModuleDependenciesCache::getVisibleClangModules (ModuleDependencyID moduleID) const {
945+ llvm::StringSet<> &ModuleDependenciesCache::getVisibleClangModules (
946+ ModuleDependencyID moduleID) const {
930947 ASSERT (moduleID.Kind == ModuleDependencyKind::SwiftSource ||
931948 moduleID.Kind == ModuleDependencyKind::SwiftInterface ||
932949 moduleID.Kind == ModuleDependencyKind::SwiftBinary);
933950 return findKnownDependency (moduleID).getVisibleClangModules ();
934951}
935952
936- ModuleDependencyIDSetVector
937- ModuleDependenciesCache::getAllDependencies (const ModuleDependencyID &moduleID) const {
953+ ModuleDependencyIDCollectionView
954+ ModuleDependenciesCache::getDirectImportedDependencies (
955+ const ModuleDependencyID &moduleID) const {
938956 const auto &moduleInfo = findKnownDependency (moduleID);
939- ModuleDependencyIDSetVector result;
940- if (moduleInfo.isSwiftModule ()) {
941- auto swiftImportedDepsRef = moduleInfo.getImportedSwiftDependencies ();
942- auto headerClangDepsRef = moduleInfo.getHeaderClangDependencies ();
943- auto overlayDependenciesRef = moduleInfo.getSwiftOverlayDependencies ();
944- result.insert (swiftImportedDepsRef.begin (),
945- swiftImportedDepsRef.end ());
946- result.insert (headerClangDepsRef.begin (),
947- headerClangDepsRef.end ());
948- result.insert (overlayDependenciesRef.begin (),
949- overlayDependenciesRef.end ());
950- }
951-
952- if (moduleInfo.isSwiftSourceModule ()) {
953- auto crossImportOverlayDepsRef = moduleInfo.getCrossImportOverlayDependencies ();
954- result.insert (crossImportOverlayDepsRef.begin (),
955- crossImportOverlayDepsRef.end ());
956- }
957-
958- auto clangImportedDepsRef = moduleInfo.getImportedClangDependencies ();
959- result.insert (clangImportedDepsRef.begin (),
960- clangImportedDepsRef.end ());
961-
962- return result;
957+ return ModuleDependencyIDCollectionView (
958+ moduleInfo.getImportedSwiftDependencies (),
959+ moduleInfo.getImportedClangDependencies ());
963960}
964961
965- ModuleDependencyIDSetVector
966- ModuleDependenciesCache::getClangDependencies (const ModuleDependencyID &moduleID) const {
962+ ModuleDependencyIDCollectionView
963+ ModuleDependenciesCache::getAllClangDependencies (
964+ const ModuleDependencyID &moduleID) const {
967965 const auto &moduleInfo = findKnownDependency (moduleID);
968- ModuleDependencyIDSetVector result;
969- auto clangImportedDepsRef = moduleInfo.getImportedClangDependencies ();
970- result.insert (clangImportedDepsRef.begin (),
971- clangImportedDepsRef.end ());
972- if (moduleInfo.isSwiftSourceModule () || moduleInfo.isSwiftBinaryModule ()) {
973- auto headerClangDepsRef = moduleInfo.getHeaderClangDependencies ();
974- result.insert (headerClangDepsRef.begin (),
975- headerClangDepsRef.end ());
976- }
977- return result;
966+ return ModuleDependencyIDCollectionView (
967+ moduleInfo.getImportedClangDependencies (),
968+ moduleInfo.getHeaderClangDependencies ());
978969}
979970
980971llvm::ArrayRef<ModuleDependencyID>
981- ModuleDependenciesCache::getImportedSwiftDependencies (const ModuleDependencyID &moduleID) const {
972+ ModuleDependenciesCache::getImportedSwiftDependencies (
973+ const ModuleDependencyID &moduleID) const {
982974 const auto &moduleInfo = findKnownDependency (moduleID);
983975 assert (moduleInfo.isSwiftModule ());
984976 return moduleInfo.getImportedSwiftDependencies ();
985977}
986978
987979llvm::ArrayRef<ModuleDependencyID>
988- ModuleDependenciesCache::getImportedClangDependencies (const ModuleDependencyID &moduleID) const {
980+ ModuleDependenciesCache::getImportedClangDependencies (
981+ const ModuleDependencyID &moduleID) const {
989982 const auto &moduleInfo = findKnownDependency (moduleID);
990983 return moduleInfo.getImportedClangDependencies ();
991984}
992985
993986llvm::ArrayRef<ModuleDependencyID>
994- ModuleDependenciesCache::getHeaderClangDependencies (const ModuleDependencyID &moduleID) const {
987+ ModuleDependenciesCache::getHeaderClangDependencies (
988+ const ModuleDependencyID &moduleID) const {
995989 const auto &moduleInfo = findKnownDependency (moduleID);
996990 assert (moduleInfo.isSwiftModule ());
997991 return moduleInfo.getHeaderClangDependencies ();
998992}
999993
1000994llvm::ArrayRef<ModuleDependencyID>
1001- ModuleDependenciesCache::getSwiftOverlayDependencies (const ModuleDependencyID &moduleID) const {
995+ ModuleDependenciesCache::getSwiftOverlayDependencies (
996+ const ModuleDependencyID &moduleID) const {
1002997 const auto &moduleInfo = findKnownDependency (moduleID);
1003998 assert (moduleInfo.isSwiftModule ());
1004999 return moduleInfo.getSwiftOverlayDependencies ();
10051000}
10061001
10071002llvm::ArrayRef<ModuleDependencyID>
1008- ModuleDependenciesCache::getCrossImportOverlayDependencies (const ModuleDependencyID &moduleID) const {
1003+ ModuleDependenciesCache::getCrossImportOverlayDependencies (
1004+ const ModuleDependencyID &moduleID) const {
10091005 const auto &moduleInfo = findKnownDependency (moduleID);
10101006 assert (moduleInfo.isSwiftSourceModule ());
10111007 return moduleInfo.getCrossImportOverlayDependencies ();
10121008}
1013-
0 commit comments