Hi, James. The trick here is that the name you’ll get in Swift for these methods is probably 'compareQuery(_:toQuery:)', because the Swift compiler detects that the “result” is redundant with the type name. In Xcode 8 the compiler didn’t check if you were using the “old" name to satisfy a protocol, but Xcode 9 now does (for unrelated reasons).
Since this is a source-breaking change, can you file an issue at https://bugs.swift.org <https://bugs.swift.org/> ? At the very least we should make the diagnostic better. You can always tell the Swift compiler you know better by using the NS_SWIFT_NAME annotation to provide an alternate name, using Swift function name syntax. Jordan > On Sep 15, 2017, at 12:45, James Dempsey via swift-users > <swift-users@swift.org> wrote: > > I am updating from Xcode 8 to Xcode 9, still using Swift 3. > > In my project I am getting warnings of the pattern: > > Unavailable instance method ‘compareQueryResult(_:toQueryResult:)’ was used > to satisfy a requirement of protocol ‘ResultComparable’. > > My project uses an Obj-C++ framework to wrap C++ and expose it in Obj-C. > > The instance method in question is declared and implemented in a number of > Obj-C classes in this framework. > > @interface DocumentQuery: Query { > - (ComparisonResult)compareQueryResult:(DocumentResult *)result1 > toQueryResult:(DocumentResult *)result2; > } > @end > > @interface GroupQuery: Query { > - (ComparisonResult)compareQueryResult:(GroupResult *)result1 > toQueryResult:(GroupResult *)result2; > } > @end > > > > Another framework imports the Obj-C++ framework. In this framework the > protocol is defined in Swift with an associated type: > > public protocol ResultComparable > { > associatedtype ResultType > func compareQueryResult(_ r1: ResultType, toQueryResult r2: ResultType) > -> ComparisonResult > } > > And conformance is declared: > > extension DocumentQuery: ResultComparable {} > extension GroupQuery: ResultComparable {} > > > This compiled without warnings in Xcode 8 / Swift 3, but they appear in Xcode > 9 / Swift 3. Any help in understanding the issue and how to fix it would be > greatly appreciated. > > James > > _______________________________________________ > 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