Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit f1be75e

Browse files
author
git apple-llvm automerger
committed
Merge commit '43985fc26f81' from swift/release/6.2.1 into swift/release/6.2
2 parents 84f765b + 43985fc commit f1be75e

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

lldb/source/Plugins/Language/Swift/SwiftFormatters.cpp

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -219,19 +219,23 @@ static bool makeStringGutsSummary(
219219
llvm::StringRef variantCase = variant_sp->GetValueAsCString();
220220

221221
ValueObjectSP payload_sp;
222-
if (variantCase.starts_with("immortal")) {
223-
payload_sp = variant_sp->GetChildAtNamePath({g_immortal, g__value});
224-
} else if (variantCase.starts_with("native")) {
225-
payload_sp = variant_sp->GetChildAtNamePath({g_immortal, g__value});
226-
} else if (variantCase.starts_with("bridged")) {
227-
static ConstString g_bridged("bridged");
228-
auto anyobject_sp = variant_sp->GetChildMemberWithName(g_bridged, true);
229-
if (!anyobject_sp)
230-
return error("unexpected layout (bridged)");
231-
payload_sp = anyobject_sp->GetChildAtIndex(0, true); // "instance"
222+
if (variantCase == "immortal" || variantCase == "native" ||
223+
variantCase == "bridged") {
224+
payload_sp = variant_sp->GetSyntheticValue();
225+
if (!payload_sp)
226+
return error("unexpected layout (no variant)");
227+
payload_sp = payload_sp->GetChildAtIndex(0);
228+
if (!payload_sp)
229+
return error("unexpected layout (no variant payload)");
230+
payload_sp = payload_sp->GetSyntheticValue();
232231
} else {
233232
return error("unknown variant");
234233
}
234+
if (variantCase == "bridged") {
235+
if (!payload_sp)
236+
return error("unexpected layout (bridged)");
237+
payload_sp = payload_sp->GetChildAtIndex(0, true); // "instance"
238+
}
235239
if (!payload_sp)
236240
return error("no payload");
237241

0 commit comments

Comments
 (0)