Skip to content

Commit 65b7dcb

Browse files
authored
Merge pull request #1745 from medismailben/swift/master-next
[lldb/interpreter] Add Swift REPL init file support
2 parents 2f6436f + 554bee0 commit 65b7dcb

File tree

2 files changed

+19
-10
lines changed

2 files changed

+19
-10
lines changed

lldb/source/Interpreter/CommandInterpreter.cpp

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2096,9 +2096,12 @@ static void GetHomeInitFile(llvm::SmallVectorImpl<char> &init_file,
20962096
FileSystem::Instance().Resolve(init_file);
20972097
}
20982098

2099-
static void GetHomeREPLInitFile(llvm::SmallVectorImpl<char> &init_file,
2100-
LanguageType language) {
2101-
if (language == LanguageType::eLanguageTypeUnknown)
2099+
static void GetHomeREPLInitFile(llvm::SmallVectorImpl<char> &init_file) {
2100+
LanguageSet repl_languages = Language::GetLanguagesSupportingREPLs();
2101+
LanguageType language = eLanguageTypeUnknown;
2102+
if (auto main_repl_language = repl_languages.GetSingularLanguage())
2103+
language = *main_repl_language;
2104+
else
21022105
return;
21032106

21042107
std::string init_file_name =
@@ -2196,13 +2199,8 @@ void CommandInterpreter::SourceInitFileHome(CommandReturnObject &result,
21962199

21972200
llvm::SmallString<128> init_file;
21982201

2199-
if (is_repl) {
2200-
LanguageType language = {};
2201-
TargetSP target_sp = GetDebugger().GetSelectedTarget();
2202-
if (target_sp)
2203-
language = target_sp->GetLanguage();
2204-
GetHomeREPLInitFile(init_file, language);
2205-
}
2202+
if (is_repl)
2203+
GetHomeREPLInitFile(init_file);
22062204

22072205
if (init_file.empty())
22082206
GetHomeInitFile(init_file);
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// Test that the Swift REPL init file works.
2+
// REQUIRES: system-darwin
3+
// RUN: export HOME=%t
4+
// RUN: mkdir -p %t
5+
// RUN: echo 'br set -f main.c -l 123' > ~/.lldbinit
6+
// RUN: echo 'br set -f swift-repl.c -l 456' > ~/.lldbinit-swift-repl
7+
// RUN: %lldb-init --repl < %s 2>&1 | FileCheck %s
8+
9+
:br list
10+
// CHECK: Current breakpoints
11+
// CHECK-NEXT: file = 'swift-repl.c', line = 456, exact_match = 0, locations = 0 (pending)

0 commit comments

Comments
 (0)