It’s just placeholder syntax for ‘a value whose type is given by a generic 
parameter in the following signature’.

Slava

> On Sep 5, 2017, at 4:44 AM, Rudolf Adamkovič <salu...@me.com> wrote:
> 
> 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 
>> <mailto: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 
>>> <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