[swift-evolution] Passing class protocols to functions accepting AnyObject
Charles Srstka
cocoadev at charlessoft.com
Sun Dec 4 20:46:04 CST 2016
The following currently does not work:
protocol P: class {}
class C: P {}
func foo<T>(t: T) where T: AnyObject {
print("foo")
}
let p: P = C()
foo(t: p) // error: cannot invoke 'foo' with an argument list of type '(t: P)'
It seems to me that this ought to have been allowed, since P is declared as being a reference type and thus should have been able to satisfy the function’s requirements.
Is this worthy of writing a language proposal, or would this be considered a bug that should be sent through the radar system instead?
Thanks,
Charles
More information about the swift-evolution
mailing list