@@ -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