// RUN: %target-swift-emit-silgen %s -enable-objc-interop | %FileCheck %s protocol ClassProtocol: AnyObject {} class BaseClass {} func makeGenericClosureWithUnknownClass(t: T) where T : ClassProtocol { _ = { [unowned t] in _ = t } } // CHECK-LABEL: sil private [ossa] @$s4main34makeGenericClosureWithUnknownClass1tyx_tAA0G8ProtocolRzlFyycfU_ : $@convention(thin) (@guaranteed <τ_0_0 where τ_0_0 : ClassProtocol> { var @sil_unowned τ_0_0 } ) -> () { func makeGenericClosureWithNativeClass1(t: T) where T : BaseClass { _ = { [unowned t] in _ = t } } // CHECK-LABEL: sil private [ossa] @$s4main34makeGenericClosureWithNativeClass11tyx_tAA9BaseClassCRbzlFyycfU_ : $@convention(thin) (@guaranteed @sil_unowned T) -> () { func makeGenericClosureWithNativeClass2(t: T) where T : ClassProtocol, T : BaseClass { _ = { [unowned t] in _ = t } } // CHECK-LABEL: sil private [ossa] @$s4main34makeGenericClosureWithNativeClass21tyx_tAA9BaseClassCRbzAA0I8ProtocolRzlFyycfU_ : $@convention(thin) (@guaranteed @sil_unowned T) -> () { // https://github.com/swiftlang/swift/issues/79244 struct Wrapper { unowned var t: T } func f1(t: T) { _ = { Wrapper(t: t) } } func f2(u: U, tt: Array>) { _ = tt.map { _ in Wrapper(t: u) } }