Slide 26
Slide 26 text
// main.Foo.a.setter : Swift.ImplicitlyUnwrappedOptional
sil hidden [transparent] @_TFC4main3Foos1aGSQSi_ : $@convention(method) (ImplicitlyU
bb0(%0 : $ImplicitlyUnwrappedOptional, %1 : $Foo):
debug_value %0 : $ImplicitlyUnwrappedOptional // let value // id: %2
debug_value %1 : $Foo // let self // id: %3
%4 = integer_literal $Builtin.Int1, -1 // user: %6
%5 = integer_literal $Builtin.Int1, 0 // user: %6
%6 = select_enum %0 : $ImplicitlyUnwrappedOptional,
case #ImplicitlyUnwrappedOptional.Some!enumelt.1: %4,
default %5 : $Builtin.Int1 // user: %7
cond_br %6, bb1, bb3 // id: %7
bb1: // Preds: bb0
%8 = unchecked_enum_data %0 : $ImplicitlyUnwrappedOptional, #ImplicitlyUnwrap
%9 = enum $ImplicitlyUnwrappedOptional, #ImplicitlyUnwrappedOptional.Some!enu
%10 = enum $Optional>, #Optional.Some!enumelt.1,
br bb2(%10 : $Optional>) // id: %11
bb2(%12 : $Optional>): // Preds: bb1 bb3
%13 = ref_element_addr %1 : $Foo, #Foo.a.storage // user: %14
store %12 to %13 : $*Optional> // id: %14
%15 = tuple () // user: %16
return %15 : $() // id: %16
bb3: // Preds: bb0
%17 = enum $Optional>, #Optional.None!enumelt //
br bb2(%17 : $Optional>) // id: %18
}