Thanks Jens. Your example does work for me. The use case I have been trying
to accomplish is conditional conformance of a protocol, not a struct. After
re-reading, it looks like this is not covered by SE-0143.
import CoreGraphics
protocol Drawable {
func draw()
}
protocol Point2D{
associatedtype T:FloatingPoint & ExpressibleByFloatLiteral
var x:T{
get
}
var y:T{
get
}
}
extension Collection: Drawable where Element:Point2D {//error: Extension of
protocol ‘Collection’ cannot have an inheritance clause
func draw(){
print("drawing something here")
}
}
Matt
> On Dec 6, 2017, at 00:25, Jens Persson <[email protected]> wrote:
>
> Oh I forgot to include the step where I select the newly installed toolchain
> ...
>
> On Wed, Dec 6, 2017 at 9:24 AM, Jens Persson via swift-users
> <[email protected] <mailto:[email protected]>> wrote:
> I've now installed 2017-12-05 snapshot and can confirm that it too works for
> me.
> In more detail:
>
> 1. Install swift-DEVELOPMENT-SNAPSHOT-2017-12-05-a-osx.pkg
>
> 2. Restart Xcode (I'm using Xcode 9.2 (9C40b))
> (I guess it shouldn't be necessary to restart, but I think it might be
> ...)
>
> 3. Create a new command line project.
>
> 4. Put -enable-experimental-conditional-conformances in Other Swift Flags in
> the project's Build Settings.
>
> 5. Enter the following code in main.swift and Build (which works without
> errors):
>
> protocol P {}
> struct S<T> {}
> extension S: P where T: P {}
>
>
> Regarding step 2. I'm not 100% sure, but I think that it might be necessary
> to restart Xcode after installing a new snapshot, because even if the new
> snapshot can be selected from the toolchains menu, it doesn't take affect
> until after restarting Xcode. I'm always restarting Xcode after installing
> and selecting a new toolchain. Someone please correct me if you can prove
> that this isn't necessary.
>
> /Jens
>
> On Wed, Dec 6, 2017 at 7:48 AM, Jens Persson via swift-users
> <[email protected] <mailto:[email protected]>> wrote:
> It works for me with Xcode 9.1 and 9.2 using latest dev snapshot (from
> 2017-11-28 and 2017-12-03), I added
> -enable-experimental-conditional-conformances in Other Swift Flags as you
> show in the screenshot.
> /Jens
>
> On Wed, Dec 6, 2017 at 4:32 AM, Matt Whiteside via swift-users
> <[email protected] <mailto:[email protected]>> wrote:
> Hello Swift Users,
>
> [This is a resend with smaller attachment] Has anyone had luck passing the
> new '-enable-experimental-conditional-conformances' flag to Xcode? It works
> when I run swift from the command line, with the Dec. 5th snapshot toolchain,
> but not Xcode. I have tried whats in the screenshot below as well as adding
> -Xfrontend, but I’m still getting the usual ‘extension of protocol cannot
> have an inheritance clause’ error:
>
> Thanks for any suggestions on this,
>
> Matt
>
>
> <Screen Shot 2017-12-05 at 19.19.06.png>
>
>
>
> _______________________________________________
> swift-users mailing list
> [email protected] <mailto:[email protected]>
> https://lists.swift.org/mailman/listinfo/swift-users
> <https://lists.swift.org/mailman/listinfo/swift-users>
>
>
>
> _______________________________________________
> swift-users mailing list
> [email protected] <mailto:[email protected]>
> https://lists.swift.org/mailman/listinfo/swift-users
> <https://lists.swift.org/mailman/listinfo/swift-users>
>
>
>
> _______________________________________________
> swift-users mailing list
> [email protected] <mailto:[email protected]>
> https://lists.swift.org/mailman/listinfo/swift-users
> <https://lists.swift.org/mailman/listinfo/swift-users>
>
>
_______________________________________________
swift-users mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-users