title: Not sure how this inout scenario is safe, because the array gets invalidated upon return
body: <p>The below code doesn't crash, but I can't reason why, given the "limited" docs available.</p>
  
  <pre><code>func foo(inout a: [Int], inout b: Int) {
      a = []
      b = 99
  }
  
  var arr = [1,2,3]
  
  // confusion: where does the "out" of b go to?
  // storage for a was already cleared / invalidated
  foo(&amp;arr, b: &amp;arr[2])
  
  print(arr)  // arr is empty
  </code></pre>