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

Reply via email to