Hi Phil, I think the warning is bogus in this case. Do you mind filing a bug?
Slava > On Oct 24, 2017, at 11:00 PM, Phil Kirby via swift-users > <swift-users@swift.org> wrote: > > Original StackOverflow post: > > https://stackoverflow.com/questions/46924554/redundant-superclass-constraint-in-swift-4 > > <https://stackoverflow.com/questions/46924554/redundant-superclass-constraint-in-swift-4> > > > <https://stackoverflow.com/questions/46924554/redundant-superclass-constraint-in-swift-4#> > > I'm getting a Redundant superclass constraint... warning in swift4: (paste in > a playground) > > import CoreData > > class Item : NSManagedObject {} > > protocol DataSourceProtocol { > associatedtype DataSourceItem : NSManagedObject > } > > protocol DataSourceProtocolProvider : class { } > > extension DataSourceProtocolProvider { > func createDataSource<T: DataSourceProtocol>(dataSource: T) > where T.DataSourceItem == Item { > } > } > On the createDataSource<T: DataSourceProtocol> declaration I get the > following warning: > > Redundant superclass constraint 'T.DataSourceItem' : 'NSManagedObject' > > I thought that you could specify that an associatedtype could be used with > the == operator to constrain the associatedtype to a specific type. I want to > have a func createDataSource<T: DataSourceProtocol>(dataSource:T) where the > DataSourceItem is an Item. > > If I replace the == operator with : then the warning goes away: > > extension DataSourceProtocolProvider { > func createDataSource<T: DataSourceProtocol>(dataSource: T) > where T.DataSourceItem : Item { > } > } > This happens to be a completely different context now. This constraint > specifies that I want to have a func createDataSource<T: > DataSourceProtocol>(dataSource:T) where the DataSourceItem is a subclass of > Item. Which isn't the same thing as DataSourceItem is an Item object. Also, > the code runs fine with == so am I just not understanding how constraints > work? > > > _______________________________________________ > swift-users mailing list > swift-users@swift.org > https://lists.swift.org/mailman/listinfo/swift-users
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users