[swift-users] Expression pattern cannot be a named tuple constant
Neil Faiman
neil.swift at faiman.org
Tue Jul 5 20:16:54 CDT 2016
SR-1993.
> On Jul 5, 2016, at 4:15 PM, Jordan Rose <jordan_rose at apple.com> wrote:
>
> I'd definitely consider that a bug. Can you file it at bugs.swift.org?
>
> Jordan
>
>> On Jul 4, 2016, at 14:56, Neil Faiman via swift-users <swift-users at swift.org> wrote:
>>
>> (Resending — this didn’t get any responses when I sent it a month ago.)
>>
>> Swift 2.2 in Xcode 7.3.1.
>>
>> Apparently you cannot use a named tuple constant as an expression pattern in a case label.
>>
>> func test(x: Int, y: Int) -> Int {
>> let int_1 = 1
>> switch x {
>> case 0:
>> return 0
>> case int_1:
>> return 1
>> default:
>> break
>> }
>>
>> let int_1_1: (Int, Int) = (1, 1)
>> switch (x, y) {
>> case (0, 0):
>> return 0
>> case int_1_1: // <<<<
>> return 1
>> default:
>> return -1
>> }
>> }
>>
>> error: expression pattern of type '(Int, Int)' cannot match values of type '(Int, Int)'
>> case int_1_1:
>> ^~~~~~~
>>
>> The error message is particularly amusing.
>>
>> - Neil Faiman
>> _______________________________________________
>> swift-users mailing list
>> swift-users at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-users
>
More information about the swift-users
mailing list