@@ -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