Hi, Pavel. This is definitely supported, and it is indeed a bug that these are not both producing 'true'. We're tracking this as rdar://problem/24453316 <rdar://problem/24453316>.
Jordan > On Feb 5, 2017, at 03:14, Pavel Ivashkov via swift-users > <swift-users@swift.org> wrote: > > Hello, > > What is the current view on inheriting non-objc protocol from objc protocol? > Is it supported? Is it a valid construct? > > > import Foundation > > @objc protocol Base {} > > protocol Some : Base {} > > class Nada : NSObject, Some {} > > let x: NSObject = Nada() > > print("Nada is Some? \(x is Some)") > print("Nada is Base? \(x is Base)") > > > There are two statements in the docs on @objc attribute: > a) The compiler also implicitly adds the objc attribute to a class that > inherits from another class marked with the objc attribute or a class defined > in Objective-C. > b) Protocols marked with the objc attribute can’t inherit from protocols that > aren’t. > > But they don't spec the other way round about protocols. > > > Currently the output is > > swift main.swift > Nada is Some? true > Nada is Base? false > > Which is not what I would expect. > > Here is extended example: http://stackoverflow.com/q/42023977 > <http://stackoverflow.com/q/42023977> > > swift --version > Apple Swift version 3.0.2 (swiftlang-800.0.63 clang-800.0.42.1) > Target: x86_64-apple-macosx10.9 > > (same on 3.1-dev) > _______________________________________________ > 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