I agree with you. The proposal probably needs to be considered before the ABI 
freeze.

> Le 18 déc. 2015 à 06:55:38, Jeremy Pereira via swift-evolution 
> <[email protected]> a écrit :
> 
> These are the definitions of the right shift operators
> 
>       public func >>(lhs: Int8, rhs: Int8) -> Int8
> 
>       public func >>(lhs: Int, rhs: Int) -> Int
> 
>       public func >>(lhs: UInt, rhs: UInt) -> UInt
> 
>       public func >>(lhs: Int64, rhs: Int64) -> Int64
> 
>       public func >>(lhs: UInt64, rhs: UInt64) -> UInt64
> 
>       public func >>(lhs: UInt8, rhs: UInt8) -> UInt8
> 
>       public func >>(lhs: UInt16, rhs: UInt16) -> UInt16
> 
>       public func >>(lhs: Int16, rhs: Int16) -> Int16
> 
>       public func >>(lhs: Int32, rhs: Int32) -> Int32
> 
>       public func >>(lhs: UInt32, rhs: UInt32) -> UInt32
> 
> 
> Note that both left and right hand side are of the same type. In my opinion, 
> rhs, which represents the number of bits to shift, should always be an Int 
> e.g.
> 
>       public func >>(lhs: UInt64, rhs: Int) -> UInt64
> 
> The two operands are fundamentally different, the left hand one is 
> conceptually an array of bits and the right hand one is conceptually a count. 
> 
> The current definitions mean that I almost always have to do a cast on the 
> right operand with shift operations. e.g. the following snippet that converts 
> a UInt64 into an array of boolean values.
> 
>    let aNumber: UInt64 = 0x123456
>    var numberAsBits: [Bool] = [];
>    for i in 0 ..< 64
>    {
>        numberAsBits.append((aNumber >> i) & 1 != 0); // Error because i needs 
> to be cast to a UInt64
>    }
> 
> I would like additional versions of the shift operator where rhs is an Int 
> please.
> 
> Needless to say, the same applies to the left shift operators.
> 
> _______________________________________________
> 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

Reply via email to