Author: Dave Lee Date: 2025-09-03T10:51:09-07:00 New Revision: 722339dc0927545834afffd8aca9a75efd450ca9
URL: https://github.com/llvm/llvm-project/commit/722339dc0927545834afffd8aca9a75efd450ca9 DIFF: https://github.com/llvm/llvm-project/commit/722339dc0927545834afffd8aca9a75efd450ca9.diff LOG: [lldb] Revert custom __str__ in SBStructuredDataExtensions.i (#156721) `__str__` was implemented in #155061, however its behavior was limited to only a some kinds of `SBStructuredData`. That was a breaking change, and this change removes that implementation of `__str__`, relying on the existing behavior which calls `GetDescription`. Added: Modified: lldb/bindings/interface/SBStructuredDataExtensions.i lldb/test/API/python_api/sbstructureddata/TestStructuredDataAPI.py Removed: ################################################################################ diff --git a/lldb/bindings/interface/SBStructuredDataExtensions.i b/lldb/bindings/interface/SBStructuredDataExtensions.i index 6c452a0da3852..9def366a4cf11 100644 --- a/lldb/bindings/interface/SBStructuredDataExtensions.i +++ b/lldb/bindings/interface/SBStructuredDataExtensions.i @@ -52,18 +52,6 @@ STRING_EXTENSION_OUTSIDE(SBStructuredData) else: raise TypeError("cannot convert generic to bool") - def __str__(self): - data_type = self.GetType() - if data_type in ( - eStructuredDataTypeString, - eStructuredDataTypeInteger, - eStructuredDataTypeSignedInteger, - eStructuredDataTypeFloat, - ): - return str(self.dynamic) - else: - raise TypeError(f"cannot convert {self.type_name(data_type)} to string") - def __int__(self): data_type = self.GetType() if data_type in ( diff --git a/lldb/test/API/python_api/sbstructureddata/TestStructuredDataAPI.py b/lldb/test/API/python_api/sbstructureddata/TestStructuredDataAPI.py index 6c00588636516..275ac03a5a86d 100644 --- a/lldb/test/API/python_api/sbstructureddata/TestStructuredDataAPI.py +++ b/lldb/test/API/python_api/sbstructureddata/TestStructuredDataAPI.py @@ -48,6 +48,8 @@ def structured_data_api_test(self): s.Clear() error = example.GetDescription(s) self.assertSuccess(error, "GetDescription works") + # Ensure str() doesn't raise an exception. + self.assertTrue(str(example)) if not "key_float" in s.GetData(): self.fail("FAILED: could not find key_float in description output") @@ -344,7 +346,7 @@ def array_struct_test(self, dict_struct): self.fail("wrong output: " + str(output)) def test_round_trip_scalars(self): - for original in (0, 11, -1, 0.0, 4.5, -0.25, "", "dirk", True, False): + for original in (0, 11, -1, 0.0, 4.5, -0.25, True, False): constructor = type(original) data = lldb.SBStructuredData() data.SetFromJSON(json.dumps(original)) @@ -357,13 +359,6 @@ def test_dynamic(self): data.SetFromJSON(json.dumps(original)) self.assertEqual(data.dynamic, original) - def test_round_trip_string(self): - # No 0.0, it inherently does not round trip. - for original in (0, 11, -1, 4.5, -0.25, "", "dirk"): - data = lldb.SBStructuredData() - data.SetFromJSON(json.dumps(original)) - self.assertEqual(str(data), str(original)) - def test_round_trip_int(self): for original in (0, 11, -1): data = lldb.SBStructuredData() _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits