From 35e4364439bc24248792b405d38b128a4c236383 Mon Sep 17 00:00:00 2001 From: Adrian Prantl Date: Mon, 10 Apr 2023 14:52:49 -0700 Subject: [PATCH 1/6] Revert "[lldb] Fix lldb build after swift ASTContext change" This reverts commit 50a89bccbdb1506c96e3683bdb78ca6ebf10ae28. --- lldb/source/Plugins/TypeSystem/Swift/SwiftASTContext.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lldb/source/Plugins/TypeSystem/Swift/SwiftASTContext.cpp b/lldb/source/Plugins/TypeSystem/Swift/SwiftASTContext.cpp index dbe661052ecf2..4862848250398 100644 --- a/lldb/source/Plugins/TypeSystem/Swift/SwiftASTContext.cpp +++ b/lldb/source/Plugins/TypeSystem/Swift/SwiftASTContext.cpp @@ -2907,7 +2907,7 @@ swift::ASTContext *SwiftASTContext::GetASTContext() { GetLanguageOptions(), GetTypeCheckerOptions(), GetSILOptions(), GetSearchPathOptions(), GetClangImporterOptions(), GetSymbolGraphOptions(), GetSourceManager(), GetDiagnosticEngine(), - /*OutputBackend=*/nullptr, ReportModuleLoadingProgress)); + ReportModuleLoadingProgress)); m_diagnostic_consumer_ap.reset(new StoringDiagnosticConsumer(*this)); if (getenv("LLDB_SWIFT_DUMP_DIAGS")) { From 44c656aa85b0077348d203bee21d51a89020e5c4 Mon Sep 17 00:00:00 2001 From: Adrian Prantl Date: Tue, 11 Apr 2023 08:55:37 -0700 Subject: [PATCH 2/6] Revert "[lldb] Skip TestSwiftBackwardInteropExpressions in Linux" This reverts commit 1c981654f85a318ecbe7c4a7a46ea3aee9e571ff. --- .../backward/expressions/TestSwiftBackwardInteropExpressions.py | 1 - 1 file changed, 1 deletion(-) diff --git a/lldb/test/API/lang/swift/cxx_interop/backward/expressions/TestSwiftBackwardInteropExpressions.py b/lldb/test/API/lang/swift/cxx_interop/backward/expressions/TestSwiftBackwardInteropExpressions.py index 4ca2caeecc6eb..4a9f2e630f732 100644 --- a/lldb/test/API/lang/swift/cxx_interop/backward/expressions/TestSwiftBackwardInteropExpressions.py +++ b/lldb/test/API/lang/swift/cxx_interop/backward/expressions/TestSwiftBackwardInteropExpressions.py @@ -8,7 +8,6 @@ class TestSwiftBackwardInteropExpressions(TestBase): - @skipIfLinux @swiftTest def test_func_step_in(self): self.build() From d707f3245890ae38096ec9d88971af155c0ba649 Mon Sep 17 00:00:00 2001 From: Adrian Prantl Date: Tue, 11 Apr 2023 08:55:40 -0700 Subject: [PATCH 3/6] Revert "[lldb] Add Swift/C++ backward interop expression evaluation tests" This reverts commit a90ad0ecb6949f03b9d10f9632d023680859bc74. --- .../cxx_interop/backward/expressions/Makefile | 7 ---- .../TestSwiftBackwardInteropExpressions.py | 21 ---------- .../cxx_interop/backward/expressions/main.cpp | 16 -------- .../backward/expressions/swift-types.swift | 39 ------------------- 4 files changed, 83 deletions(-) delete mode 100644 lldb/test/API/lang/swift/cxx_interop/backward/expressions/Makefile delete mode 100644 lldb/test/API/lang/swift/cxx_interop/backward/expressions/TestSwiftBackwardInteropExpressions.py delete mode 100644 lldb/test/API/lang/swift/cxx_interop/backward/expressions/main.cpp delete mode 100644 lldb/test/API/lang/swift/cxx_interop/backward/expressions/swift-types.swift diff --git a/lldb/test/API/lang/swift/cxx_interop/backward/expressions/Makefile b/lldb/test/API/lang/swift/cxx_interop/backward/expressions/Makefile deleted file mode 100644 index 947094ab0c28f..0000000000000 --- a/lldb/test/API/lang/swift/cxx_interop/backward/expressions/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -SWIFT_CXX_HEADER := swift-types.h -SWIFT_SOURCES := swift-types.swift -CXX_SOURCES := main.cpp -SWIFT_CXX_INTEROP := 1 -SWIFTFLAGS_EXTRAS = -Xcc -I$(SRCDIR) -parse-as-library -CFLAGS = -I. -g -include Makefile.rules diff --git a/lldb/test/API/lang/swift/cxx_interop/backward/expressions/TestSwiftBackwardInteropExpressions.py b/lldb/test/API/lang/swift/cxx_interop/backward/expressions/TestSwiftBackwardInteropExpressions.py deleted file mode 100644 index 4a9f2e630f732..0000000000000 --- a/lldb/test/API/lang/swift/cxx_interop/backward/expressions/TestSwiftBackwardInteropExpressions.py +++ /dev/null @@ -1,21 +0,0 @@ - -""" -Test that evaluating expressions works on backward interop mode. -""" -from lldbsuite.test.lldbtest import * -from lldbsuite.test.decorators import * - - -class TestSwiftBackwardInteropExpressions(TestBase): - - @swiftTest - def test_func_step_in(self): - self.build() - self.runCmd('setting set target.experimental.swift-enable-cxx-interop true') - _, _, _, _ = lldbutil.run_to_source_breakpoint( - self, 'Break here', lldb.SBFileSpec('main.cpp')) - self.expect('expr swiftFunc()', substrs=["Inside a Swift function"]) - self.expect('expr swiftClass.swiftMethod()', substrs=["Inside a Swift method"]) - self.expect('expr a::SwiftClass::swiftStaticMethod()', substrs=["In a Swift static method"]) - self.expect('expr swiftClass.getSwiftProperty()', substrs=["This is a class with properties"]) - self.expect('expr swiftSubclassAsClass.overrideableMethod()', substrs=["In subclass"]) diff --git a/lldb/test/API/lang/swift/cxx_interop/backward/expressions/main.cpp b/lldb/test/API/lang/swift/cxx_interop/backward/expressions/main.cpp deleted file mode 100644 index 17431c746188a..0000000000000 --- a/lldb/test/API/lang/swift/cxx_interop/backward/expressions/main.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include "swift-types.h" - -using namespace a; - -int main() { - swiftFunc(); - auto swiftClass = SwiftClass::init(); - swiftClass.swiftMethod(); - SwiftClass::swiftStaticMethod(); - swiftClass.getSwiftProperty(); - auto swiftSubclass = SwiftSubclass::init(); - SwiftClass swiftSubclassAsClass = swiftSubclass; - swiftSubclassAsClass.overrideableMethod(); - return 0; // Break here -} - diff --git a/lldb/test/API/lang/swift/cxx_interop/backward/expressions/swift-types.swift b/lldb/test/API/lang/swift/cxx_interop/backward/expressions/swift-types.swift deleted file mode 100644 index 8a74c3e4c28c6..0000000000000 --- a/lldb/test/API/lang/swift/cxx_interop/backward/expressions/swift-types.swift +++ /dev/null @@ -1,39 +0,0 @@ - -public func swiftFunc() -> String{ - return "Inside a Swift function!" -} - -public class SwiftClass { - var field: Int - var arr: [String] - public init() { - field = 42 - arr = ["An", "array", "of", "strings"] - } - - public func swiftMethod() -> String { - return "Inside a Swift method!" - } - - private var _desc = "This is a class with properties!" - public var swiftProperty: String { - get { - return _desc - } - } - - public static func swiftStaticMethod() -> String { - return "In a Swift static method!" - } - - public func overrideableMethod() -> String { - return "In the base class!" - } -} - -public class SwiftSubclass: SwiftClass { - public override func overrideableMethod() -> String { - return "In subclass!" - } -} - From 6114d1fe43434ee2b6405ab8ee2254ef91e57c56 Mon Sep 17 00:00:00 2001 From: Adrian Prantl Date: Tue, 11 Apr 2023 14:26:37 -0700 Subject: [PATCH 4/6] Revert "Revert "[lldb] Fix lldb build after swift ASTContext change"" This reverts commit 35e4364439bc24248792b405d38b128a4c236383. --- lldb/source/Plugins/TypeSystem/Swift/SwiftASTContext.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lldb/source/Plugins/TypeSystem/Swift/SwiftASTContext.cpp b/lldb/source/Plugins/TypeSystem/Swift/SwiftASTContext.cpp index bb34b1491fd88..2c8adbe85a6a4 100644 --- a/lldb/source/Plugins/TypeSystem/Swift/SwiftASTContext.cpp +++ b/lldb/source/Plugins/TypeSystem/Swift/SwiftASTContext.cpp @@ -2908,7 +2908,7 @@ swift::ASTContext *SwiftASTContext::GetASTContext() { GetLanguageOptions(), GetTypeCheckerOptions(), GetSILOptions(), GetSearchPathOptions(), GetClangImporterOptions(), GetSymbolGraphOptions(), GetSourceManager(), GetDiagnosticEngine(), - ReportModuleLoadingProgress)); + /*OutputBackend=*/nullptr, ReportModuleLoadingProgress)); m_diagnostic_consumer_ap.reset(new StoringDiagnosticConsumer(*this)); if (getenv("LLDB_SWIFT_DUMP_DIAGS")) { From 1628f65d1d8ee91303bf4ce8782a3bfedc8311c5 Mon Sep 17 00:00:00 2001 From: Adrian Prantl Date: Tue, 11 Apr 2023 14:26:40 -0700 Subject: [PATCH 5/6] Revert "Revert "[lldb] Add Swift/C++ backward interop expression evaluation tests"" This reverts commit d707f3245890ae38096ec9d88971af155c0ba649. --- .../cxx_interop/backward/expressions/Makefile | 7 ++++ .../TestSwiftBackwardInteropExpressions.py | 21 ++++++++++ .../cxx_interop/backward/expressions/main.cpp | 16 ++++++++ .../backward/expressions/swift-types.swift | 39 +++++++++++++++++++ 4 files changed, 83 insertions(+) create mode 100644 lldb/test/API/lang/swift/cxx_interop/backward/expressions/Makefile create mode 100644 lldb/test/API/lang/swift/cxx_interop/backward/expressions/TestSwiftBackwardInteropExpressions.py create mode 100644 lldb/test/API/lang/swift/cxx_interop/backward/expressions/main.cpp create mode 100644 lldb/test/API/lang/swift/cxx_interop/backward/expressions/swift-types.swift diff --git a/lldb/test/API/lang/swift/cxx_interop/backward/expressions/Makefile b/lldb/test/API/lang/swift/cxx_interop/backward/expressions/Makefile new file mode 100644 index 0000000000000..947094ab0c28f --- /dev/null +++ b/lldb/test/API/lang/swift/cxx_interop/backward/expressions/Makefile @@ -0,0 +1,7 @@ +SWIFT_CXX_HEADER := swift-types.h +SWIFT_SOURCES := swift-types.swift +CXX_SOURCES := main.cpp +SWIFT_CXX_INTEROP := 1 +SWIFTFLAGS_EXTRAS = -Xcc -I$(SRCDIR) -parse-as-library +CFLAGS = -I. -g +include Makefile.rules diff --git a/lldb/test/API/lang/swift/cxx_interop/backward/expressions/TestSwiftBackwardInteropExpressions.py b/lldb/test/API/lang/swift/cxx_interop/backward/expressions/TestSwiftBackwardInteropExpressions.py new file mode 100644 index 0000000000000..4a9f2e630f732 --- /dev/null +++ b/lldb/test/API/lang/swift/cxx_interop/backward/expressions/TestSwiftBackwardInteropExpressions.py @@ -0,0 +1,21 @@ + +""" +Test that evaluating expressions works on backward interop mode. +""" +from lldbsuite.test.lldbtest import * +from lldbsuite.test.decorators import * + + +class TestSwiftBackwardInteropExpressions(TestBase): + + @swiftTest + def test_func_step_in(self): + self.build() + self.runCmd('setting set target.experimental.swift-enable-cxx-interop true') + _, _, _, _ = lldbutil.run_to_source_breakpoint( + self, 'Break here', lldb.SBFileSpec('main.cpp')) + self.expect('expr swiftFunc()', substrs=["Inside a Swift function"]) + self.expect('expr swiftClass.swiftMethod()', substrs=["Inside a Swift method"]) + self.expect('expr a::SwiftClass::swiftStaticMethod()', substrs=["In a Swift static method"]) + self.expect('expr swiftClass.getSwiftProperty()', substrs=["This is a class with properties"]) + self.expect('expr swiftSubclassAsClass.overrideableMethod()', substrs=["In subclass"]) diff --git a/lldb/test/API/lang/swift/cxx_interop/backward/expressions/main.cpp b/lldb/test/API/lang/swift/cxx_interop/backward/expressions/main.cpp new file mode 100644 index 0000000000000..17431c746188a --- /dev/null +++ b/lldb/test/API/lang/swift/cxx_interop/backward/expressions/main.cpp @@ -0,0 +1,16 @@ +#include "swift-types.h" + +using namespace a; + +int main() { + swiftFunc(); + auto swiftClass = SwiftClass::init(); + swiftClass.swiftMethod(); + SwiftClass::swiftStaticMethod(); + swiftClass.getSwiftProperty(); + auto swiftSubclass = SwiftSubclass::init(); + SwiftClass swiftSubclassAsClass = swiftSubclass; + swiftSubclassAsClass.overrideableMethod(); + return 0; // Break here +} + diff --git a/lldb/test/API/lang/swift/cxx_interop/backward/expressions/swift-types.swift b/lldb/test/API/lang/swift/cxx_interop/backward/expressions/swift-types.swift new file mode 100644 index 0000000000000..8a74c3e4c28c6 --- /dev/null +++ b/lldb/test/API/lang/swift/cxx_interop/backward/expressions/swift-types.swift @@ -0,0 +1,39 @@ + +public func swiftFunc() -> String{ + return "Inside a Swift function!" +} + +public class SwiftClass { + var field: Int + var arr: [String] + public init() { + field = 42 + arr = ["An", "array", "of", "strings"] + } + + public func swiftMethod() -> String { + return "Inside a Swift method!" + } + + private var _desc = "This is a class with properties!" + public var swiftProperty: String { + get { + return _desc + } + } + + public static func swiftStaticMethod() -> String { + return "In a Swift static method!" + } + + public func overrideableMethod() -> String { + return "In the base class!" + } +} + +public class SwiftSubclass: SwiftClass { + public override func overrideableMethod() -> String { + return "In subclass!" + } +} + From d55de954144c0329e19a876f4210fb1b6cb3f72b Mon Sep 17 00:00:00 2001 From: Adrian Prantl Date: Tue, 11 Apr 2023 14:26:42 -0700 Subject: [PATCH 6/6] Revert "Revert "[lldb] Skip TestSwiftBackwardInteropExpressions in Linux"" This reverts commit 44c656aa85b0077348d203bee21d51a89020e5c4. --- .../backward/expressions/TestSwiftBackwardInteropExpressions.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lldb/test/API/lang/swift/cxx_interop/backward/expressions/TestSwiftBackwardInteropExpressions.py b/lldb/test/API/lang/swift/cxx_interop/backward/expressions/TestSwiftBackwardInteropExpressions.py index 4a9f2e630f732..4ca2caeecc6eb 100644 --- a/lldb/test/API/lang/swift/cxx_interop/backward/expressions/TestSwiftBackwardInteropExpressions.py +++ b/lldb/test/API/lang/swift/cxx_interop/backward/expressions/TestSwiftBackwardInteropExpressions.py @@ -8,6 +8,7 @@ class TestSwiftBackwardInteropExpressions(TestBase): + @skipIfLinux @swiftTest def test_func_step_in(self): self.build()