// RUN: not %target-swift-frontend -disable-availability-checking -emit-sil -verify %s
// REQUIRES: asserts

// SR-12656: Differentiation transform crashes for original function with opaque
// result type.
//
// If supporting this is non-trivial, we could reject earlier during Sema.

import _Differentiation

@differentiable
func opaqueResult(_ x: Float) -> some Differentiable { x }

// swift: swift/lib/SILOptimizer/Differentiation/PullbackEmitter.cpp:244: void swift::autodiff::PullbackEmitter::addAdjointValue(swift::SILBasicBlock *, swift::SILValue, swift::autodiff::AdjointValue, swift::SILLocation): Assertion `newAdjointValue.getType() == getRemappedTangentType(originalValue->getType())' failed.
// Stack dump:
// ...
// 1.      Swift version 5.3-dev (LLVM f66b332548, Swift 05c47da664)
// 2.      While evaluating request ExecuteSILPipelineRequest(Run pipelines { Guaranteed Passes } on SIL for main.main)
// 3.      While running pass #15 SILModuleTransform "Differentiation".
// 4.      While processing // differentiability witness for opaqueResult(_:)
// sil_differentiability_witness hidden [parameters 0] [results 0] @$s4main12opaqueResultyQrSfF : $@convention(thin) (Float) -> @out @_opaqueReturnTypeOf("$s4main12opaqueResultyQrSfF", 0) 🦸 {
// }
//  on SIL function "@$s4main12opaqueResultyQrSfF".
//  for 'opaqueResult(_:)' (at swift/test/AutoDiff/compiler_crashers/sr12656-differentiation-opaque-result-type.swift:13:1)
// 5.      While generating VJP for SIL function "@$s4main12opaqueResultyQrSfF".
//  for 'opaqueResult(_:)' (at swift/test/AutoDiff/compiler_crashers/sr12656-differentiation-opaque-result-type.swift:13:1)
// 6.      While generating pullback for SIL function "@$s4main12opaqueResultyQrSfF".
//  for 'opaqueResult(_:)' (at swift/test/AutoDiff/compiler_crashers/sr12656-differentiation-opaque-result-type.swift:13:1)
