Skip to content

Commit 2a69d25

Browse files
switch to using std::optional
1 parent 8f62523 commit 2a69d25

21 files changed

+87
-114
lines changed

lldb/include/lldb/DataFormatters/FormattersHelpers.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ void AddFilter(TypeCategoryImpl::SharedPointer category_sp,
5353
llvm::StringRef type_name,
5454
ScriptedSyntheticChildren::Flags flags, bool regex = false);
5555

56-
llvm::Expected<size_t> ExtractIndexFromString(const char *item_name);
56+
std::optional<size_t> ExtractIndexFromString(const char *item_name);
5757

5858
Address GetArrayAddressOrPointerValue(ValueObject &valobj);
5959

lldb/source/DataFormatters/FormattersHelpers.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -97,19 +97,19 @@ void lldb_private::formatters::AddFilter(
9797
category_sp->AddTypeFilter(type_name, match_type, filter_sp);
9898
}
9999

100-
llvm::Expected<size_t>
100+
std::optional<size_t>
101101
lldb_private::formatters::ExtractIndexFromString(const char *item_name) {
102102
if (!item_name || !*item_name)
103-
return llvm::createStringError("String has no item named '%s'", item_name);
103+
return std::nullopt;
104104
if (*item_name != '[')
105-
return llvm::createStringError("String has no item named '%s'", item_name);
105+
return std::nullopt;
106106
item_name++;
107107
char *endptr = nullptr;
108108
unsigned long int idx = ::strtoul(item_name, &endptr, 0);
109109
if (idx == 0 && endptr == item_name)
110-
return llvm::createStringError("String has no item named '%s'", item_name);
110+
return std::nullopt;
111111
if (idx == ULONG_MAX)
112-
return llvm::createStringError("String has no item named '%s'", item_name);
112+
return std::nullopt;
113113
return idx;
114114
}
115115

lldb/source/DataFormatters/VectorType.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -270,13 +270,12 @@ class VectorTypeSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
270270
}
271271

272272
llvm::Expected<size_t> GetIndexOfChildWithName(ConstString name) override {
273-
auto idx_or_err = ExtractIndexFromString(name.AsCString());
274-
if (!idx_or_err) {
275-
llvm::consumeError(idx_or_err.takeError());
273+
auto optional_idx = ExtractIndexFromString(name.AsCString());
274+
if (!optional_idx) {
276275
return llvm::createStringError("Type has no child named '%s'",
277276
name.AsCString());
278277
}
279-
uint32_t idx = *idx_or_err;
278+
uint32_t idx = *optional_idx;
280279
if (idx >= CalculateNumChildrenIgnoringErrors())
281280
return llvm::createStringError("Type has no child named '%s'",
282281
name.AsCString());

lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,12 @@ class GenericBitsetFrontEnd : public SyntheticChildrenFrontEnd {
2929
GenericBitsetFrontEnd(ValueObject &valobj, StdLib stdlib);
3030

3131
llvm::Expected<size_t> GetIndexOfChildWithName(ConstString name) override {
32-
auto idx_or_err = formatters::ExtractIndexFromString(name.GetCString());
33-
if (!idx_or_err) {
34-
llvm::consumeError(idx_or_err.takeError());
32+
auto optional_idx = formatters::ExtractIndexFromString(name.GetCString());
33+
if (!optional_idx) {
3534
return llvm::createStringError("Type has no child named '%s'",
3635
name.AsCString());
3736
}
38-
return *idx_or_err;
37+
return *optional_idx;
3938
}
4039

4140
lldb::ChildCacheState Update() override;

lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,12 @@ class GenericOptionalFrontend : public SyntheticChildrenFrontEnd {
3939
llvm::Expected<size_t> GetIndexOfChildWithName(ConstString name) override {
4040
if (name == "$$dereference$$")
4141
return 0;
42-
auto idx_or_err = formatters::ExtractIndexFromString(name.GetCString());
43-
if (!idx_or_err) {
44-
llvm::consumeError(idx_or_err.takeError());
42+
auto optional_idx = formatters::ExtractIndexFromString(name.GetCString());
43+
if (!optional_idx) {
4544
return llvm::createStringError("Type has no child named '%s'",
4645
name.AsCString());
4746
}
48-
return *idx_or_err;
47+
return *optional_idx;
4948
}
5049

5150
llvm::Expected<uint32_t> CalculateNumChildren() override {

lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,13 +108,12 @@ lldb_private::formatters::LibcxxInitializerListSyntheticFrontEnd::
108108
return llvm::createStringError("Type has no child named '%s'",
109109
name.AsCString());
110110
}
111-
auto idx_or_err = formatters::ExtractIndexFromString(name.GetCString());
112-
if (!idx_or_err) {
113-
llvm::consumeError(idx_or_err.takeError());
111+
auto optional_idx = formatters::ExtractIndexFromString(name.GetCString());
112+
if (!optional_idx) {
114113
return llvm::createStringError("Type has no child named '%s'",
115114
name.AsCString());
116115
}
117-
return *idx_or_err;
116+
return *optional_idx;
118117
}
119118

120119
lldb_private::SyntheticChildrenFrontEnd *

lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,13 +107,12 @@ class ListIterator {
107107
class AbstractListFrontEnd : public SyntheticChildrenFrontEnd {
108108
public:
109109
llvm::Expected<size_t> GetIndexOfChildWithName(ConstString name) override {
110-
auto idx_or_err = formatters::ExtractIndexFromString(name.GetCString());
111-
if (!idx_or_err) {
112-
llvm::consumeError(idx_or_err.takeError());
110+
auto optional_idx = formatters::ExtractIndexFromString(name.GetCString());
111+
if (!optional_idx) {
113112
return llvm::createStringError("Type has no child named '%s'",
114113
name.AsCString());
115114
}
116-
return *idx_or_err;
115+
return *optional_idx;
117116
}
118117
lldb::ChildCacheState Update() override;
119118

lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -395,13 +395,12 @@ lldb_private::formatters::LibcxxStdMapSyntheticFrontEnd::Update() {
395395

396396
llvm::Expected<size_t> lldb_private::formatters::LibcxxStdMapSyntheticFrontEnd::
397397
GetIndexOfChildWithName(ConstString name) {
398-
auto idx_or_err = formatters::ExtractIndexFromString(name.GetCString());
399-
if (!idx_or_err) {
400-
llvm::consumeError(idx_or_err.takeError());
398+
auto optional_idx = formatters::ExtractIndexFromString(name.GetCString());
399+
if (!optional_idx) {
401400
return llvm::createStringError("Type has no child named '%s'",
402401
name.AsCString());
403402
}
404-
return *idx_or_err;
403+
return *optional_idx;
405404
}
406405

407406
SyntheticChildrenFrontEnd *

lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -179,13 +179,12 @@ lldb_private::formatters::LibcxxStdProxyArraySyntheticFrontEnd::
179179
if (!m_base)
180180
return llvm::createStringError("Type has no child named '%s'",
181181
name.AsCString());
182-
auto idx_or_err = formatters::ExtractIndexFromString(name.GetCString());
183-
if (!idx_or_err) {
184-
llvm::consumeError(idx_or_err.takeError());
182+
auto optional_idx = formatters::ExtractIndexFromString(name.GetCString());
183+
if (!optional_idx) {
185184
return llvm::createStringError("Type has no child named '%s'",
186185
name.AsCString());
187186
}
188-
return *idx_or_err;
187+
return *optional_idx;
189188
}
190189

191190
lldb_private::SyntheticChildrenFrontEnd *

lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -150,13 +150,12 @@ lldb_private::formatters::LibcxxStdSliceArraySyntheticFrontEnd::
150150
if (!m_start)
151151
return llvm::createStringError("Type has no child named '%s'",
152152
name.AsCString());
153-
auto idx_or_err = formatters::ExtractIndexFromString(name.GetCString());
154-
if (!idx_or_err) {
155-
llvm::consumeError(idx_or_err.takeError());
153+
auto optional_idx = formatters::ExtractIndexFromString(name.GetCString());
154+
if (!optional_idx) {
156155
return llvm::createStringError("Type has no child named '%s'",
157156
name.AsCString());
158157
}
159-
return *idx_or_err;
158+
return *optional_idx;
160159
}
161160

162161
lldb_private::SyntheticChildrenFrontEnd *

0 commit comments

Comments
 (0)