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 <j...@bitcycle.com> 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 
> <swift-users@swift.org <mailto:swift-users@swift.org>> 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 
> <swift-users@swift.org <mailto:swift-users@swift.org>> 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 
> <swift-users@swift.org <mailto:swift-users@swift.org>> 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
> swift-users@swift.org <mailto:swift-users@swift.org>
> https://lists.swift.org/mailman/listinfo/swift-users 
> <https://lists.swift.org/mailman/listinfo/swift-users>
> 
> 
> 
> _______________________________________________
> swift-users mailing list
> swift-users@swift.org <mailto:swift-users@swift.org>
> https://lists.swift.org/mailman/listinfo/swift-users 
> <https://lists.swift.org/mailman/listinfo/swift-users>
> 
> 
> 
> _______________________________________________
> swift-users mailing list
> swift-users@swift.org <mailto:swift-users@swift.org>
> https://lists.swift.org/mailman/listinfo/swift-users 
> <https://lists.swift.org/mailman/listinfo/swift-users>
> 
> 

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

Reply via email to