I’m definitely not an expert on the technical part of this but I wonder if this
idea can be generalized.
It would be great if one could override the type A of a member from the
supertype with type B iff there is a subtype or conformance relationship like B
: A. I believe this would reduce the usage of associated and generic workaround
types a lot.
As an example we could take a look at UIView where we have a variable var
layerClass: AnyClass.
With the mentioned ability we could make it typesafe.
class UIView {
var layerClass: CALayer { … }
}
class CustomLayer : CALayer {}
class CustomView : UIView {
override var layerClass: CustomLayer { … }
}
That would be awesome. :)
--
Adrian Zubarev
Sent with Airmail
Am 1. September 2016 um 05:03:15, Karl via swift-evolution
([email protected]) schrieb:
On 31 Aug 2016, at 06:10, Sitton, Yogev via swift-evolution
<[email protected]> wrote:
That’s was my point.
Two sets of rules for the same case in two different places.
These should be unified.
I’ll write the proposal and create a pull request.
On Aug 17, 2016, at 11:24 PM, Slava Pestov <[email protected]> wrote:
On Aug 17, 2016, at 10:18 AM, Vladimir.S via swift-evolution
<[email protected]> wrote:
But yes, strictly speaking 'make()->Circle?' conforms to protocol requirement
'make()->Shape?', it does returns 'Shape?', so I believe this should be treated
as conformance to MyShapeProtocol protocol.
I agree this should be made to work, especially since method overriding
supports the exact same scenario.
We have two sets of rules, implemented in two different places, for matching
method overrides and protocol witnesses. We need to unify the rules and the
code.
Slava
Sounds like you could save yourself some trouble and just file a bug report
instead?
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution