blob: df2af1e8b69312842db0d71f90f191120d344365 [file] [log] [blame]
// RUN: %target-swift-frontend -module-name TestModule -parse -verify -suppress-argument-labels-in-types %s
// Function type with various forms of argument label.
typealias Function1 = (a: Int, // expected-error{{function types cannot have argument label 'a'; use '_' instead}}{{24-24=_ }}
_ b: Int, // okay
c d: Int, // expected-error{{function types cannot have argument label 'c'; use '_' instead}}{{24-25=_}}
e _: Int, // expected-error{{function types cannot have argument label 'e'; use '_' instead}}{{24-29=}}
_: Int, // okay
Int) // okay
-> Int
// Throwing versions.
typealias Function2 = (a: Int, // expected-error{{function types cannot have argument label 'a'; use '_' instead}}{{24-24=_ }}
_ b: Int, // okay
c d: Int, // expected-error{{function types cannot have argument label 'c'; use '_' instead}}{{24-25=_}}
e _: Int, // expected-error{{function types cannot have argument label 'e'; use '_' instead}}{{24-29=}}
_: Int, // okay
Int) // okay
throws -> Int
typealias Function3 = (a: Int, // expected-error{{function types cannot have argument label 'a'; use '_' instead}}{{24-24=_ }}
_ b: Int, // okay
c d: Int, // expected-error{{function types cannot have argument label 'c'; use '_' instead}}{{24-25=_}}
e _: Int, // expected-error{{function types cannot have argument label 'e'; use '_' instead}}{{24-29=}}
_: Int, // okay
Int) // okay
rethrows -> Int // expected-error{{only function declarations may be marked 'rethrows'}}
struct S2<X> { }
func testTentativeParsing() {
let _ = S2<(_ x: Int, _ y: Double) -> Int>()
}