> On May 24, 2017, at 5:52 PM, Xiaodi Wu <[email protected]> wrote:
>
> On Wed, May 24, 2017 at 7:21 PM, David Sweeris <[email protected]
> <mailto:[email protected]>> wrote:
>
>> On May 24, 2017, at 5:11 PM, Xiaodi Wu <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>> On Wed, May 24, 2017 at 3:32 PM, David Sweeris via swift-evolution
>> <[email protected] <mailto:[email protected]>> wrote:
>> So, I’m working on a type, and would like to make it conform to
>> `ExpressibleByArrayLiteral`. The thing is, I don’t actually care what type
>> `Element` is as long as it conforms to `FixedWidthInteger` and
>> `UnsignedInteger`. I tried writing this:
>> public init <U: FixedWidthInteger & UnsignedInteger> (arrayLiteral
>> elements: U...) { … }
>> But Xcode says my type doesn’t conform to `ExpressibleByArrayLiteral` unless
>> I add an init that takes a concrete type:
>> public init(arrayLiteral elements: UInt...) { … }
>>
>> Does anyone else think the generic init should to be able to satisfy
>> `ExpressibleByArrayLiteral` (especially since `UInt` meets the conformance
>> requirements)?
>>
>> Your type needs to be generic.
>
> It already is… I just don’t want to restrict it to being initialized from
> array literals containing that same generic type.
>
> Not sure of your particular use case, but it sounds like you'd want to write
> a type-erased AnyFixedWidthUnsignedInteger wrapper.
It’s just a arbitrary-width integer type. It's generic over a “chunk” type:
UIntArb<UInt8>, UIntArb<UInt32>, etc. I was just wanting to be able initialize
the chunk array using an array literal containing any FixedWidthInteger &
UnsignedInteger type is all. I’ll look into the type-erased wrapper thing, but
I doubt it’ll be worth the effort since it was just a minor convenience issue
for me in the first place.
- Dave Sweeris
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution