@@ -850,74 +850,90 @@ void ModuleDependenciesCache::removeDependency(ModuleDependencyID moduleID) {
850
850
map.erase (moduleID.ModuleName );
851
851
}
852
852
853
- void
854
- ModuleDependenciesCache::setImportedSwiftDependencies ( ModuleDependencyID moduleID,
855
- const ArrayRef<ModuleDependencyID> dependencyIDs) {
853
+ void ModuleDependenciesCache::setImportedSwiftDependencies (
854
+ ModuleDependencyID moduleID,
855
+ const ArrayRef<ModuleDependencyID> dependencyIDs) {
856
856
auto dependencyInfo = findKnownDependency (moduleID);
857
857
assert (dependencyInfo.getImportedSwiftDependencies ().empty ());
858
858
#ifndef NDEBUG
859
859
for (const auto &depID : dependencyIDs)
860
860
assert (depID.Kind != ModuleDependencyKind::Clang);
861
861
#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.
863
864
auto updatedDependencyInfo = dependencyInfo;
864
865
updatedDependencyInfo.setImportedSwiftDependencies (dependencyIDs);
865
866
updateDependency (moduleID, updatedDependencyInfo);
866
867
}
867
- void
868
- ModuleDependenciesCache::setImportedClangDependencies ( ModuleDependencyID moduleID,
869
- const ArrayRef<ModuleDependencyID> dependencyIDs) {
868
+ void ModuleDependenciesCache::setImportedClangDependencies (
869
+ ModuleDependencyID moduleID,
870
+ const ArrayRef<ModuleDependencyID> dependencyIDs) {
870
871
auto dependencyInfo = findKnownDependency (moduleID);
871
872
assert (dependencyInfo.getImportedClangDependencies ().empty ());
872
873
#ifndef NDEBUG
873
874
for (const auto &depID : dependencyIDs)
874
875
assert (depID.Kind == ModuleDependencyKind::Clang);
875
876
#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.
877
879
auto updatedDependencyInfo = dependencyInfo;
878
880
updatedDependencyInfo.setImportedClangDependencies (dependencyIDs);
879
881
updateDependency (moduleID, updatedDependencyInfo);
880
882
}
881
- void
882
- ModuleDependenciesCache::setHeaderClangDependencies ( ModuleDependencyID moduleID,
883
- const ArrayRef<ModuleDependencyID> dependencyIDs) {
883
+ void ModuleDependenciesCache::setHeaderClangDependencies (
884
+ ModuleDependencyID moduleID,
885
+ const ArrayRef<ModuleDependencyID> dependencyIDs) {
884
886
auto dependencyInfo = findKnownDependency (moduleID);
885
887
#ifndef NDEBUG
886
888
for (const auto &depID : dependencyIDs)
887
889
assert (depID.Kind == ModuleDependencyKind::Clang);
888
890
#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.
890
893
auto updatedDependencyInfo = dependencyInfo;
891
894
updatedDependencyInfo.setHeaderClangDependencies (dependencyIDs);
892
895
updateDependency (moduleID, updatedDependencyInfo);
893
896
}
894
- void ModuleDependenciesCache::setSwiftOverlayDependencies (ModuleDependencyID moduleID,
895
- const ArrayRef<ModuleDependencyID> dependencyIDs) {
897
+ void ModuleDependenciesCache::setSwiftOverlayDependencies (
898
+ ModuleDependencyID moduleID,
899
+ const ArrayRef<ModuleDependencyID> dependencyIDs) {
896
900
auto dependencyInfo = findKnownDependency (moduleID);
897
901
assert (dependencyInfo.getSwiftOverlayDependencies ().empty ());
898
902
#ifndef NDEBUG
899
903
for (const auto &depID : dependencyIDs)
900
904
assert (depID.Kind != ModuleDependencyKind::Clang);
901
905
#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.
903
908
auto updatedDependencyInfo = dependencyInfo;
904
909
updatedDependencyInfo.setSwiftOverlayDependencies (dependencyIDs);
905
910
updateDependency (moduleID, updatedDependencyInfo);
906
911
}
907
- void
908
- ModuleDependenciesCache::setCrossImportOverlayDependencies ( ModuleDependencyID moduleID,
909
- const ArrayRef<ModuleDependencyID> dependencyIDs) {
912
+ void ModuleDependenciesCache::setCrossImportOverlayDependencies (
913
+ ModuleDependencyID moduleID,
914
+ const ModuleDependencyIDCollectionView dependencyIDs) {
910
915
auto dependencyInfo = findKnownDependency (moduleID);
911
916
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.
913
919
auto updatedDependencyInfo = dependencyInfo;
914
920
updatedDependencyInfo.setCrossImportOverlayDependencies (dependencyIDs);
915
921
updateDependency (moduleID, updatedDependencyInfo);
916
922
}
917
923
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) {
921
937
if (moduleNames.empty ())
922
938
return ;
923
939
auto dependencyInfo = findKnownDependency (moduleID);
@@ -926,88 +942,67 @@ ModuleDependenciesCache::addVisibleClangModules(ModuleDependencyID moduleID,
926
942
updateDependency (moduleID, updatedDependencyInfo);
927
943
}
928
944
929
- llvm::StringSet<> &ModuleDependenciesCache::getVisibleClangModules (ModuleDependencyID moduleID) const {
945
+ llvm::StringSet<> &ModuleDependenciesCache::getVisibleClangModules (
946
+ ModuleDependencyID moduleID) const {
930
947
ASSERT (moduleID.Kind == ModuleDependencyKind::SwiftSource ||
931
948
moduleID.Kind == ModuleDependencyKind::SwiftInterface ||
932
949
moduleID.Kind == ModuleDependencyKind::SwiftBinary);
933
950
return findKnownDependency (moduleID).getVisibleClangModules ();
934
951
}
935
952
936
- ModuleDependencyIDSetVector
937
- ModuleDependenciesCache::getAllDependencies (const ModuleDependencyID &moduleID) const {
953
+ ModuleDependencyIDCollectionView
954
+ ModuleDependenciesCache::getDirectImportedDependencies (
955
+ const ModuleDependencyID &moduleID) const {
938
956
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 ());
963
960
}
964
961
965
- ModuleDependencyIDSetVector
966
- ModuleDependenciesCache::getClangDependencies (const ModuleDependencyID &moduleID) const {
962
+ ModuleDependencyIDCollectionView
963
+ ModuleDependenciesCache::getAllClangDependencies (
964
+ const ModuleDependencyID &moduleID) const {
967
965
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 ());
978
969
}
979
970
980
971
llvm::ArrayRef<ModuleDependencyID>
981
- ModuleDependenciesCache::getImportedSwiftDependencies (const ModuleDependencyID &moduleID) const {
972
+ ModuleDependenciesCache::getImportedSwiftDependencies (
973
+ const ModuleDependencyID &moduleID) const {
982
974
const auto &moduleInfo = findKnownDependency (moduleID);
983
975
assert (moduleInfo.isSwiftModule ());
984
976
return moduleInfo.getImportedSwiftDependencies ();
985
977
}
986
978
987
979
llvm::ArrayRef<ModuleDependencyID>
988
- ModuleDependenciesCache::getImportedClangDependencies (const ModuleDependencyID &moduleID) const {
980
+ ModuleDependenciesCache::getImportedClangDependencies (
981
+ const ModuleDependencyID &moduleID) const {
989
982
const auto &moduleInfo = findKnownDependency (moduleID);
990
983
return moduleInfo.getImportedClangDependencies ();
991
984
}
992
985
993
986
llvm::ArrayRef<ModuleDependencyID>
994
- ModuleDependenciesCache::getHeaderClangDependencies (const ModuleDependencyID &moduleID) const {
987
+ ModuleDependenciesCache::getHeaderClangDependencies (
988
+ const ModuleDependencyID &moduleID) const {
995
989
const auto &moduleInfo = findKnownDependency (moduleID);
996
990
assert (moduleInfo.isSwiftModule ());
997
991
return moduleInfo.getHeaderClangDependencies ();
998
992
}
999
993
1000
994
llvm::ArrayRef<ModuleDependencyID>
1001
- ModuleDependenciesCache::getSwiftOverlayDependencies (const ModuleDependencyID &moduleID) const {
995
+ ModuleDependenciesCache::getSwiftOverlayDependencies (
996
+ const ModuleDependencyID &moduleID) const {
1002
997
const auto &moduleInfo = findKnownDependency (moduleID);
1003
998
assert (moduleInfo.isSwiftModule ());
1004
999
return moduleInfo.getSwiftOverlayDependencies ();
1005
1000
}
1006
1001
1007
1002
llvm::ArrayRef<ModuleDependencyID>
1008
- ModuleDependenciesCache::getCrossImportOverlayDependencies (const ModuleDependencyID &moduleID) const {
1003
+ ModuleDependenciesCache::getCrossImportOverlayDependencies (
1004
+ const ModuleDependencyID &moduleID) const {
1009
1005
const auto &moduleInfo = findKnownDependency (moduleID);
1010
1006
assert (moduleInfo.isSwiftSourceModule ());
1011
1007
return moduleInfo.getCrossImportOverlayDependencies ();
1012
1008
}
1013
-
0 commit comments