I see. TBH, I don’t understand why it says “Any” in the "generalized existentials” but everything else is clear.
Thank you Slava! R+ > On 5 Sep 2017, at 01:52, Slava Pestov <spes...@apple.com> wrote: > > Hi Rudolf, > > What you are describing is not possible right now. The protocol PointType > cannot be used as a type at all, because it has an associated type > requirement. Also it is not clear what a ‘where’ clause attached to a type > alias would mean. > > There has been some discussion of ‘generalized existentials’ on the evolution > list. So eventually, you might be able to say something like this: > > typealias Point = Any<Point : PointType where Point.Float == Float> > > Slava > >> On Sep 4, 2017, at 6:12 PM, Rudolf Adamkovič via swift-users >> <swift-users@swift.org <mailto:swift-users@swift.org>> wrote: >> >> I have the following ProceduralDrawing type: >> >> public struct ProceduralDrawing<Float, Point: PointType> where Point.Float >> == Float { >> // ... code that used Float and Point ... >> } >> >> public protocol PointType { >> associatedtype Float: FloatingPoint >> var x: Float { get } >> var y: Float { get } >> } >> >> I would like to avoid adding Point as a generic parameter but the following >> doesn’t work: >> >> public struct ProceduralDrawing<Float: FloatingPoint> { >> // ERROR: 'where' clause cannot be attached to a non-generic declaration >> typealias Point = PointType where Point.Float == Float >> // ... code that uses Float and Point ... >> } >> >> Is there a way to do this? If not, why? >> >> Thanks! >> >> R+ >> _______________________________________________ >> swift-users mailing list >> swift-users@swift.org <mailto:swift-users@swift.org> >> https://lists.swift.org/mailman/listinfo/swift-users >
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users