title: Why does Combine assign crash when writing to an optional property?
body: <p>This code crashes (&quot;Unexpectedly found nil while unwrapping an Optional value&quot;)</p>
  <pre><code>import Combine
  
  class Receiver {
      var value: Int!
      var cancellables = Set&lt;AnyCancellable&gt;([])
      
      init(_ p: AnyPublisher&lt;Int,Never&gt;) {
          p.assign(to: \.value, on: self).store(in: &amp;cancellables)
      }
  }
  
  let receiver = Receiver(Just(5).eraseToAnyPublisher())
  </code></pre>
  <p>It does not crash if I use <code>p.sink { self.value = $0 }.store(in: &amp;cancellables)</code> instead of the assign, and it does not crash if I do not use an optional for the <code>value</code>-property.</p>
  <p>To me this looks like a bug in Swift's constructor code, but maybe I am overlooking something?</p>