|
1 | 1 | // RUN: %target-typecheck-verify-swift
|
2 | 2 |
|
3 | 3 | // rdar://15946844
|
4 |
| -func test1(inout var x : Int) {} // expected-error {{parameter must not have multiple '__owned', 'inout', '__shared', 'var', or 'let' specifiers}} {{18-22=}} |
| 4 | +func test1(inout var x : Int) {} // expected-warning {{'var' in this position is interpreted as an argument label}} {{18-21=`var`}} |
5 | 5 | // expected-error @-1 {{'inout' before a parameter name is not allowed, place it before the parameter type instead}} {{12-17=}} {{26-26=inout }}
|
6 |
| -func test2(inout let x : Int) {} // expected-error {{parameter must not have multiple '__owned', 'inout', '__shared', 'var', or 'let' specifiers}} {{18-22=}} |
| 6 | +func test2(inout let x : Int) {} // expected-warning {{'let' in this position is interpreted as an argument label}} {{18-21=`let`}} |
7 | 7 | // expected-error @-1 {{'inout' before a parameter name is not allowed, place it before the parameter type instead}} {{12-17=}} {{26-26=inout }}
|
8 | 8 | func test3(f : (inout _ x : Int) -> Void) {} // expected-error {{'inout' before a parameter name is not allowed, place it before the parameter type instead}}
|
9 | 9 |
|
10 |
| -func test1s(__shared var x : Int) {} // expected-error {{parameter must not have multiple '__owned', 'inout', '__shared', 'var', or 'let' specifiers}} {{22-26=}} |
| 10 | +func test1s(__shared var x : Int) {} // expected-warning {{'var' in this position is interpreted as an argument label}} {{22-25=`var`}} |
11 | 11 | // expected-error @-1 {{'__shared' before a parameter name is not allowed, place it before the parameter type instead}} {{13-21=}} {{30-30=__shared }}
|
12 |
| -func test2s(__shared let x : Int) {} // expected-error {{parameter must not have multiple '__owned', 'inout', '__shared', 'var', or 'let' specifiers}} {{22-26=}} |
| 12 | +func test2s(__shared let x : Int) {} // expected-warning {{'let' in this position is interpreted as an argument label}} {{22-25=`let`}} |
13 | 13 | // expected-error @-1 {{'__shared' before a parameter name is not allowed, place it before the parameter type instead}} {{13-21=}} {{30-30=__shared }}
|
14 | 14 |
|
15 |
| -func test1o(__owned var x : Int) {} // expected-error {{parameter must not have multiple '__owned', 'inout', '__shared', 'var', or 'let' specifiers}} {{21-25=}} |
| 15 | +func test1o(__owned var x : Int) {} // expected-warning {{'var' in this position is interpreted as an argument label}} {{21-24=`var`}} |
16 | 16 | // expected-error @-1 {{'__owned' before a parameter name is not allowed, place it before the parameter type instead}} {{13-20=}}
|
17 |
| -func test2o(__owned let x : Int) {} // expected-error {{parameter must not have multiple '__owned', 'inout', '__shared', 'var', or 'let' specifiers}} {{21-25=}} |
| 17 | +func test2o(__owned let x : Int) {} // expected-warning {{'let' in this position is interpreted as an argument label}} {{21-24=`let`}} |
18 | 18 | // expected-error @-1 {{'__owned' before a parameter name is not allowed, place it before the parameter type instead}} {{13-20=}}
|
19 | 19 |
|
20 | 20 | func test3() {
|
@@ -84,27 +84,15 @@ func SR698(_ a: Int, b: Int) {}
|
84 | 84 | SR698(1, b: 2,) // expected-error {{unexpected ',' separator}}
|
85 | 85 |
|
86 | 86 | // SR-979 - Two inout crash compiler
|
87 |
| -func SR979a(a : inout inout Int) {} // expected-error {{parameter must not have multiple '__owned', 'inout', '__shared', 'var', or 'let' specifiers}} {{17-23=}} |
| 87 | +func SR979a(a : inout inout Int) {} // expected-error {{parameter must not have multiple '__owned', 'inout', or '__shared' specifiers}} {{17-23=}} |
88 | 88 | func SR979b(inout inout b: Int) {} // expected-error {{inout' before a parameter name is not allowed, place it before the parameter type instead}} {{13-18=}} {{28-28=inout }}
|
89 |
| -// expected-error@-1 {{parameter must not have multiple '__owned', 'inout', '__shared', 'var', or 'let' specifiers}} {{19-25=}} |
90 |
| -func SR979c(let a: inout Int) {} // expected-error {{'let' as a parameter attribute is not allowed}} {{13-16=}} |
91 |
| -func SR979d(let let a: Int) {} // expected-error {{'let' as a parameter attribute is not allowed}} {{13-16=}} |
92 |
| -// expected-error @-1 {{parameter must not have multiple '__owned', 'inout', '__shared', 'var', or 'let' specifiers}} {{17-21=}} |
93 |
| -func SR979e(inout x: inout String) {} // expected-error {{parameter must not have multiple '__owned', 'inout', '__shared', 'var', or 'let' specifiers}} {{13-18=}} |
94 |
| -func SR979f(var inout x : Int) { // expected-error {{parameter must not have multiple '__owned', 'inout', '__shared', 'var', or 'let' specifiers}} {{17-23=}} |
95 |
| -// expected-error @-1 {{'var' as a parameter attribute is not allowed}} |
96 |
| - x += 10 // expected-error {{left side of mutating operator isn't mutable: 'x' is a 'let' constant}} |
97 |
| -} |
98 |
| -func SR979g(inout i: inout Int) {} // expected-error {{parameter must not have multiple '__owned', 'inout', '__shared', 'var', or 'let' specifiers}} {{13-18=}} |
99 |
| -func SR979h(let inout x : Int) {} // expected-error {{parameter must not have multiple '__owned', 'inout', '__shared', 'var', or 'let' specifiers}} {{17-23=}} |
100 |
| -// expected-error @-1 {{'let' as a parameter attribute is not allowed}} |
101 |
| -class VarTester { |
102 |
| - init(var a: Int, var b: Int) {} // expected-error {{'var' as a parameter attribute is not allowed}} |
103 |
| - // expected-error @-1 {{'var' as a parameter attribute is not allowed}} |
104 |
| - func x(var b: Int) { //expected-error {{'var' as a parameter attribute is not allowed}} |
105 |
| - b += 10 // expected-error {{left side of mutating operator isn't mutable: 'b' is a 'let' constant}} |
106 |
| - } |
107 |
| -} |
| 89 | +// expected-error@-1 {{parameter must not have multiple '__owned', 'inout', or '__shared' specifiers}} {{19-25=}} |
| 90 | +func SR979d(let let a: Int) {} // expected-warning {{'let' in this position is interpreted as an argument label}} {{13-16=`let`}} |
| 91 | +// expected-error @-1 {{expected ',' separator}} {{20-20=,}} |
| 92 | +// expected-error @-2 {{parameter requires an explicit type}} |
| 93 | +// expected-warning @-3 {{extraneous duplicate parameter name; 'let' already has an argument label}} {{13-17=}} |
| 94 | +func SR979e(inout x: inout String) {} // expected-error {{parameter must not have multiple '__owned', 'inout', or '__shared' specifiers}} {{13-18=}} |
| 95 | +func SR979g(inout i: inout Int) {} // expected-error {{parameter must not have multiple '__owned', 'inout', or '__shared' specifiers}} {{13-18=}} |
108 | 96 |
|
109 | 97 | func repeat() {}
|
110 | 98 | // expected-error @-1 {{keyword 'repeat' cannot be used as an identifier here}}
|
|
0 commit comments