// RUN: %target-swift-frontend %s -emit-ir -debug-generic-signatures 2>&1 | %FileCheck %s // REQUIRES: asserts class PropertyDataSource { } protocol TableViewCellFactoryType { associatedtype Item } public protocol PropertyHosting { associatedtype PType: Hashable, EntityOwned } public protocol EntityOwned: class { associatedtype Owner } public protocol PropertyType: class { } func useType(cellType: T.Type) { } // The GSB would reject this declaration because it was "too minimal", // missing the Factory.Item : EntityOwned requirement that is // required to get a conformance-valid rewrite system. // // The Requirement Machine correctly infers this requirement and adds // it during minimization. // CHECK-LABEL: rdar28544316.(file).PropertyTableViewAdapter@ // CHECK-NEXT: Generic signature: final class PropertyTableViewAdapter where Factory.Item: PropertyType, Factory.Item.Owner: PropertyHosting, Factory.Item.Owner.PType == Factory.Item { typealias Item = Factory.Item let dataManager: PropertyDataSource init(dataManager: PropertyDataSource) { useType(cellType: Factory.Item.Owner.self) self.dataManager = dataManager } }