[swift-users] Expression pattern cannot be a named tuple constant

Shane S electro_alchemy at hotmail.com
Wed Jul 6 09:00:30 CDT 2016


I’m not convinced that I see this as a bug, maybe more of a feature request?

The test given seems to be conflating a tuple-type with tuple-pattern…

Shane


> On Jul 5, 2016, at 6:16 PM, Neil Faiman via swift-users <swift-users at swift.org> wrote:
> 
> 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
>> 
> 
> _______________________________________________
> 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