Variables
  #self#[36m::Core.Const(Main.anonymous.foo)[39m
  x[36m::Int64[39m
  y[36m::Int64[39m
  #1[36m::Main.anonymous.var"#1#2"[39m
  v[33m[1m::Union{Missing, Int64}[22m[39m
  u[91m[1m::Any[22m[39m
  z@_7[91m[1m::Core.Box[22m[39m
  z@_8[36m::Union{}[39m
  z@_9[36m::Union{}[39m

Body[91m[1m::Any[22m[39m
   [33m @ IRShowSandbox.jl:2 within `foo`[39m
[90m1 ─[39m       Core.NewvarNode(:(#1))
[90m│  [39m       Core.NewvarNode(:(v))
[90m│  [39m       Core.NewvarNode(:(u))
[90m│  [39m       (z@_7 = Core.Box())
[90m│  [39m %5  = (x + y)
[90m│  [39m       Core.setfield!(z@_7, :contents, %5)
[90m│ [39m [33m @ IRShowSandbox.jl:3 within `foo`[39m
[90m│  [39m %7  = Core.isdefined(z@_7, :contents)
[90m└──[39m       goto #3 if not %7
[90m2 ─[39m       goto #4
[90m3 ─[39m       Core.NewvarNode(:(z@_8))
[90m└──[39m       z@_8
[90m4 ┄[39m %12 = Core.getfield(z@_7, :contents)
[90m│  [39m %13 = (%12 < 4)
[90m└──[39m       goto #9 if not %13
   [33m @ IRShowSandbox.jl:4 within `foo`[39m
[90m5 ─[39m %15 = Core.isdefined(z@_7, :contents)
[90m└──[39m       goto #7 if not %15
[90m6 ─[39m       goto #8
[90m7 ─[39m       Core.NewvarNode(:(z@_9))
[90m└──[39m       z@_9
[90m8 ┄[39m %20 = Core.getfield(z@_7, :contents)
[90m│  [39m %21 = (%20 + 1)
[90m└──[39m       Core.setfield!(z@_7, :contents, %21)
   [33m @ IRShowSandbox.jl:6 within `foo`[39m
[90m9 ┄[39m       (#1 = %new(Main.anonymous.:(var"#1#2"), z@_7))
[90m│  [39m %24 = #1
[90m│  [39m       (u = (%24)(x))
[90m│ [39m [33m @ IRShowSandbox.jl:7 within `foo`[39m
[90m│  [39m %26 = Core.apply_type(Main.anonymous.Union, Main.anonymous.Int, Main.anonymous.Missing)
[90m│  [39m %27 = Core.apply_type(Main.anonymous.Ref, %26)
[90m│  [39m %28 = (%27)(x)
[90m│  [39m %29 = Base.getindex(%28)
[90m│  [39m       (v = %29 + y)
[90m│ [39m [33m @ IRShowSandbox.jl:8 within `foo`[39m
[90m│  [39m %31 = (u + v)
[90m└──[39m       return %31
