// RUN: %target-run-simple-opt-O-swift
// REQUIRES: executable_test

// We were crashing here due to not preserving rc identity. 
// rdar://41328987

func takeEscaping(closure: @escaping (String) -> Void) {}

public class Helper {
  weak var o: P?

  @_optimize(none)
  init(o: P) {
    self.o = o
  }
}

protocol P: class {}

public class Binding: P {
  private var helper: Helper?

  public init() {
    helper = Helper(o: self)
    
    // Listen to model changes
    takeEscaping { [unowned self] (value: String) in
      self.update()
    }

    takeEscaping { [unowned self] (value: String) in
      self.update()
    }
  }

  func update() {}
}

@_optimize(none)
func testCrash() {
  _ = Binding()
}

testCrash()
