If we have: class N: A {}
you can pass an N into C’s test(x:), since N is an A, but not M’s test(x:), since N is not a B. Thus, it’s not a valid conformance. Saagar Jha > On Jan 17, 2018, at 00:04, Roshan via swift-evolution > <swift-evolution@swift.org> wrote: > > Hi, > > Cross posting from swift-users in case this behaviour isn't part of > the language and might be interesting to you folks. > > Here is some sample code that gives a protocol conformance error in a > playground: > > protocol A {} > protocol B: A {} > > protocol C { > func test(x: A) > } > > class M: C { > func test(x: B) {} > } > > Is there a reason why the compiler doesn't infer that ((B) -> ()) > matches ((A) -> ()) because of inheritance? > > -- > Warm regards > Roshan > _______________________________________________ > swift-evolution mailing list > swift-evolution@swift.org > https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution