Skip to content

Commit d01474c

Browse files
committed
Change interfaces to accept a FileCollectorBase
The FileCollectorBase is the common interface shared by different implementations. In lldb, we implement our own lazy variant that allows us to do the heavy lifting out-of-process instead of inside the signal handler.
1 parent 08612ff commit d01474c

File tree

4 files changed

+11
-11
lines changed

4 files changed

+11
-11
lines changed

include/swift/AST/ModuleLoader.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
#include <system_error>
2929

3030
namespace llvm {
31-
class FileCollector;
31+
class FileCollectorBase;
3232
}
3333

3434
namespace clang {
@@ -81,7 +81,7 @@ class DependencyTracker {
8181
public:
8282
explicit DependencyTracker(
8383
IntermoduleDepTrackingMode Mode,
84-
std::shared_ptr<llvm::FileCollector> FileCollector = {});
84+
std::shared_ptr<llvm::FileCollectorBase> FileCollector = {});
8585

8686
/// Adds a file as a dependency.
8787
///

include/swift/ClangImporter/ClangImporter.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424
namespace llvm {
2525
class Triple;
26-
class FileCollector;
26+
class FileCollectorBase;
2727
template<typename Fn> class function_ref;
2828
}
2929

@@ -172,9 +172,9 @@ class ClangImporter final : public ClangModuleLoader {
172172

173173
/// Create a new clang::DependencyCollector customized to
174174
/// ClangImporter's specific uses.
175-
static std::shared_ptr<clang::DependencyCollector>
176-
createDependencyCollector(IntermoduleDepTrackingMode Mode,
177-
std::shared_ptr<llvm::FileCollector> FileCollector);
175+
static std::shared_ptr<clang::DependencyCollector> createDependencyCollector(
176+
IntermoduleDepTrackingMode Mode,
177+
std::shared_ptr<llvm::FileCollectorBase> FileCollector);
178178

179179
/// Append visible module names to \p names. Note that names are possibly
180180
/// duplicated, and not guaranteed to be ordered in any way.

lib/AST/ModuleLoader.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,14 @@
2424
#include "swift/ClangImporter/ClangImporter.h"
2525

2626
namespace llvm {
27-
class FileCollector;
27+
class FileCollectorBase;
2828
}
2929

3030
namespace swift {
3131

3232
DependencyTracker::DependencyTracker(
3333
IntermoduleDepTrackingMode Mode,
34-
std::shared_ptr<llvm::FileCollector> FileCollector)
34+
std::shared_ptr<llvm::FileCollectorBase> FileCollector)
3535
// NB: The ClangImporter believes it's responsible for the construction of
3636
// this instance, and it static_cast<>s the instance pointer to its own
3737
// subclass based on that belief. If you change this to be some other

lib/ClangImporter/ClangImporter.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -326,13 +326,13 @@ class ClangImporterDependencyCollector : public clang::DependencyCollector
326326
llvm::StringSet<> ExcludedPaths;
327327
/// The FileCollector is used by LLDB to generate reproducers. It's not used
328328
/// by Swift to track dependencies.
329-
std::shared_ptr<llvm::FileCollector> FileCollector;
329+
std::shared_ptr<llvm::FileCollectorBase> FileCollector;
330330
const IntermoduleDepTrackingMode Mode;
331331

332332
public:
333333
ClangImporterDependencyCollector(
334334
IntermoduleDepTrackingMode Mode,
335-
std::shared_ptr<llvm::FileCollector> FileCollector)
335+
std::shared_ptr<llvm::FileCollectorBase> FileCollector)
336336
: FileCollector(FileCollector), Mode(Mode) {}
337337

338338
void excludePath(StringRef filename) {
@@ -378,7 +378,7 @@ class ClangImporterDependencyCollector : public clang::DependencyCollector
378378
std::shared_ptr<clang::DependencyCollector>
379379
ClangImporter::createDependencyCollector(
380380
IntermoduleDepTrackingMode Mode,
381-
std::shared_ptr<llvm::FileCollector> FileCollector) {
381+
std::shared_ptr<llvm::FileCollectorBase> FileCollector) {
382382
return std::make_shared<ClangImporterDependencyCollector>(Mode,
383383
FileCollector);
384384
}

0 commit comments

Comments
 (0)