[PATCH] D122041: [llvm][utils] Fix llvm::Optional summary provider

Dave Lee via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 18 14:29:08 PDT 2022


kastiglione created this revision.
kastiglione added reviewers: jingham, aprantl.
kastiglione added a project: LLDB.
Herald added a subscriber: JDevlieghere.
Herald added a project: All.
kastiglione requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

Returning `None` from a Python type summary results in a summary string of "None". To indicate no summary string, the implementation should return the empty string.

This change fixes a bug where the summary provider for `llvm::Optional` would incorrectly show `None`. This would happen when the underlying type itself had no summary provider. Now, when the underlying type has a summary string, that string is used, but when there is no summary, then the `Optional` will also have no summary (`return ''`).


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D122041

Files:
  llvm/utils/lldbDataFormatters.py


Index: llvm/utils/lldbDataFormatters.py
===================================================================
--- llvm/utils/lldbDataFormatters.py
+++ llvm/utils/lldbDataFormatters.py
@@ -137,7 +137,11 @@
 
 def OptionalSummaryProvider(valobj, internal_dict):
     val = GetOptionalValue(valobj)
-    return val.summary if val else 'None'
+    if val is None:
+        return 'None'
+    if val.summary:
+        return val.summary
+    return ''
 
 class OptionalSynthProvider:
     """Provides deref support to llvm::Optional<T>"""


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D122041.416608.patch
Type: text/x-patch
Size: 532 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220318/e945be53/attachment.bin>


More information about the llvm-commits mailing list