// RUN: not --crash %target-swift-frontend %s -emit-ir // 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) { } 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 } }