mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
[CodeCompletion] Lazily populate 'BasicSourceFileInfo'
This commit is contained in:
@@ -1539,10 +1539,7 @@ void ModuleDecl::collectBasicSourceFileInfo(
|
||||
llvm::function_ref<void(const BasicSourceFileInfo &)> callback) const {
|
||||
for (const FileUnit *fileUnit : getFiles()) {
|
||||
if (const auto *SF = dyn_cast<SourceFile>(fileUnit)) {
|
||||
BasicSourceFileInfo info;
|
||||
if (info.populate(SF))
|
||||
continue;
|
||||
callback(info);
|
||||
callback(BasicSourceFileInfo(SF));
|
||||
} else if (auto *serialized = dyn_cast<LoadedFile>(fileUnit)) {
|
||||
serialized->collectBasicSourceFileInfo(callback);
|
||||
}
|
||||
@@ -1553,7 +1550,7 @@ Fingerprint ModuleDecl::getFingerprint() const {
|
||||
StableHasher hasher = StableHasher::defaultHasher();
|
||||
SmallVector<Fingerprint, 16> FPs;
|
||||
collectBasicSourceFileInfo([&](const BasicSourceFileInfo &bsfi) {
|
||||
FPs.emplace_back(bsfi.InterfaceHash);
|
||||
FPs.emplace_back(bsfi.getInterfaceHashIncludingTypeMembers());
|
||||
});
|
||||
|
||||
// Sort the fingerprints lexicographically so we have a stable hash despite
|
||||
|
||||
Reference in New Issue
Block a user