// RUN: %target-swift-emit-sil %s

// TF-928: Ownership verification error in pullback function generated by the
// differentiation transform.

struct Tracked<T> {
  class Box {
    init() {}
  }
  var box: Box = Box()
}
extension Tracked : Equatable where T : Equatable {
  static func ==(_: Self, _: Self) -> Bool { fatalError() }
}
extension Tracked : AdditiveArithmetic where T : AdditiveArithmetic {
  static var zero: Self { fatalError() }
  static func +(_: Self, _: Self) -> Self { fatalError() }
  static func -(_: Self, _: Self) -> Self { fatalError() }
}
extension Tracked : Differentiable where T : Differentiable, T == T.TangentVector {
  typealias TangentVector = Tracked<T.TangentVector>
}

func TF_928(
  _ lossFunction: @differentiable (Tracked<Float>, Tracked<Float>) -> Tracked<Float>,
  _ x: Tracked<Float>
) {
  _ = pullback(at: x) { x in lossFunction(x, Tracked<Float>()) }
  _ = pullback(at: x) { x in lossFunction(Tracked<Float>(), x) }
}

// Function: 'AD__$s4main6TF_928yyAA7TrackedVySfGAE_AEtXF_AEtFA2EcfU___pullback_src_0_wrt_0'
// Error! Found a leaked owned value that was never consumed.
// Value: (%5, **%6**) = destructure_tuple %3 : $(Tracked<Float>, Tracked<Float>)
// Stack dump:
// While verifying SIL function "@AD__$s4main6TF_928yyAA7TrackedVySfGAE_AEtXF_AEtFA2EcfU___pullback_src_0_wrt_0".
