title: forEach results in $0 is immutable error
body: <pre><code>protocols.forEach { $0.prop = nil }
  </code></pre>
  
  <p>results in:</p>
  
  <pre><code>Cannot assign to property: '$0' is immutable
  </code></pre>
  
  <p>I worked around this with:</p>
  
  <pre><code>protocols.forEach
  {
      var protocol = $0
  
      protocol.prop = nil
  }
  </code></pre>
  
  <p>But why is the compiler okay with this?  I would expect it could figure this out.</p>