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
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to