hello all!

I'm wondering if somebody can explain following snippet to me.

    protocol P {
        associatedtype Element
        func next() -> Element
    }

    protocol Q {
        associatedtype T : P
        func makeT() -> T
    }

    extension Q where Self.T == Self {
        func makeT() -> Self {
            return self
        }
    }

    // Why class A conform to protocol Q successfully?
    class A: Q, P {
        func next() -> Int {
            return 0
        }
    }

`class A` does not declare associated type `T` explicitly. Why where clause check is passed ?


---
Regards

--adel
_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to