@@ -552,10 +552,11 @@ struct SwiftASTManager::Implementation {
552552 std::shared_ptr<SwiftEditorDocumentFileMap> EditorDocs,
553553 std::shared_ptr<GlobalConfig> Config,
554554 std::shared_ptr<SwiftStatistics> Stats,
555- std::shared_ptr<RequestTracker> ReqTracker, StringRef RuntimeResourcePath ,
556- StringRef DiagnosticDocumentationPath)
555+ std::shared_ptr<RequestTracker> ReqTracker, StringRef SwiftExecutablePath ,
556+ StringRef RuntimeResourcePath, StringRef DiagnosticDocumentationPath)
557557 : EditorDocs(EditorDocs), Config(Config), Stats(Stats),
558- ReqTracker(ReqTracker), RuntimeResourcePath(RuntimeResourcePath),
558+ ReqTracker(ReqTracker), SwiftExecutablePath(SwiftExecutablePath),
559+ RuntimeResourcePath(RuntimeResourcePath),
559560 DiagnosticDocumentationPath(DiagnosticDocumentationPath),
560561 SessionTimestamp(llvm::sys::toTimeT(std::chrono::system_clock::now())) {
561562 }
@@ -564,6 +565,9 @@ struct SwiftASTManager::Implementation {
564565 std::shared_ptr<GlobalConfig> Config;
565566 std::shared_ptr<SwiftStatistics> Stats;
566567 std::shared_ptr<RequestTracker> ReqTracker;
568+ // / The path of the swift-frontend executable.
569+ // / Used to find clang relative to it.
570+ std::string SwiftExecutablePath;
567571 std::string RuntimeResourcePath;
568572 std::string DiagnosticDocumentationPath;
569573 SourceManager SourceMgr;
@@ -633,10 +637,10 @@ SwiftASTManager::SwiftASTManager(
633637 std::shared_ptr<SwiftEditorDocumentFileMap> EditorDocs,
634638 std::shared_ptr<GlobalConfig> Config,
635639 std::shared_ptr<SwiftStatistics> Stats,
636- std::shared_ptr<RequestTracker> ReqTracker, StringRef RuntimeResourcePath ,
637- StringRef DiagnosticDocumentationPath)
640+ std::shared_ptr<RequestTracker> ReqTracker, StringRef SwiftExecutablePath ,
641+ StringRef RuntimeResourcePath, StringRef DiagnosticDocumentationPath)
638642 : Impl(*new Implementation(EditorDocs, Config, Stats, ReqTracker,
639- RuntimeResourcePath,
643+ SwiftExecutablePath, RuntimeResourcePath,
640644 DiagnosticDocumentationPath)) {}
641645
642646SwiftASTManager::~SwiftASTManager () {
@@ -673,8 +677,8 @@ bool SwiftASTManager::initCompilerInvocation(
673677 std::string &Error) {
674678 return ide::initCompilerInvocation (
675679 Invocation, OrigArgs, Action, Diags, UnresolvedPrimaryFile, FileSystem,
676- Impl.RuntimeResourcePath , Impl.DiagnosticDocumentationPath ,
677- Impl.SessionTimestamp , Error);
680+ Impl.SwiftExecutablePath , Impl.RuntimeResourcePath ,
681+ Impl.DiagnosticDocumentationPath , Impl. SessionTimestamp , Error);
678682}
679683
680684bool SwiftASTManager::initCompilerInvocation (
0 commit comments