22
33// See also rdar://15626843.
44static var gvu1 : Int // expected-error {{static properties may only be declared on a type}}{{1-8=}}
5- // expected-error@-1 {{global 'var' declaration requires an initializer expression or getter/setter specifier}}
5+ // expected-error@-1 {{global 'var' declaration requires an initializer expression or an explicitly stated getter}}
6+ // expected-note@-2 {{add an initializer to silence this error}} {{18-18= = <#initializer#>}}
67class var gvu2 : Int // expected-error {{class properties may only be declared on a type}}{{1-7=}}
7- // expected-error@-1 {{global 'var' declaration requires an initializer expression or getter/setter specifier}}
8+ // expected-error@-1 {{global 'var' declaration requires an initializer expression or an explicitly stated getter}}
9+ // expected-note@-2 {{add an initializer to silence this error}} {{17-17= = <#initializer#>}}
810override static var gvu3 : Int // expected-error {{static properties may only be declared on a type}}{{10-17=}}
911 // expected-error@-1 {{'override' can only be specified on class members}}{{1-10=}}
10- // expected-error@-2 {{global 'var' declaration requires an initializer expression or getter/setter specifier}}
12+ // expected-error@-2 {{global 'var' declaration requires an initializer expression or an explicitly stated getter}}
13+ // expected-note@-3 {{add an initializer to silence this error}} {{27-27= = <#initializer#>}}
1114override class var gvu4 : Int // expected-error {{class properties may only be declared on a type}}{{10-16=}}
1215 // expected-error@-1 {{'override' can only be specified on class members}}{{1-10=}}
13- // expected-error@-2 {{global 'var' declaration requires an initializer expression or getter/setter specifier}}
16+ // expected-error@-2 {{global 'var' declaration requires an initializer expression or an explicitly stated getter}}
17+ // expected-note@-3 {{add an initializer to silence this error}} {{26-26= = <#initializer#>}}
1418static override var gvu5 : Int // expected-error {{static properties may only be declared on a type}}{{1-8=}}
1519 // expected-error@-1 {{'override' can only be specified on class members}}{{8-17=}}
16- // expected-error@-2 {{global 'var' declaration requires an initializer expression or getter/setter specifier}}
20+ // expected-error@-2 {{global 'var' declaration requires an initializer expression or an explicitly stated getter}}
21+ // expected-note@-3 {{add an initializer to silence this error}} {{27-27= = <#initializer#>}}
1722class override var gvu6 : Int // expected-error {{class properties may only be declared on a type}}{{1-7=}}
1823 // expected-error@-1 {{'override' can only be specified on class members}}{{7-16=}}
19- // expected-error@-2 {{global 'var' declaration requires an initializer expression or getter/setter specifier}}
24+ // expected-error@-2 {{global 'var' declaration requires an initializer expression or an explicitly stated getter}}
25+ // expected-note@-3 {{add an initializer to silence this error}} {{26-26= = <#initializer#>}}
2026
2127static var gvu7 : Int { // expected-error {{static properties may only be declared on a type}}{{1-8=}}
2228 return 42
@@ -28,20 +34,26 @@ class var gvu8: Int { // expected-error {{class properties may only be declared
2834
2935static let glu1 : Int // expected-error {{static properties may only be declared on a type}}{{1-8=}}
3036 // expected-error@-1 {{global 'let' declaration requires an initializer expression}}
37+ // expected-note@-2 {{add an initializer to silence this error}} {{18-18= = <#initializer#>}}
3138class let glu2 : Int // expected-error {{class properties may only be declared on a type}}{{1-7=}}
3239 // expected-error@-1 {{global 'let' declaration requires an initializer expression}}
40+ // expected-note@-2 {{add an initializer to silence this error}} {{17-17= = <#initializer#>}}
3341override static let glu3 : Int // expected-error {{static properties may only be declared on a type}}{{10-17=}}
3442 // expected-error@-1 {{'override' can only be specified on class members}}{{1-10=}}
3543 // expected-error@-2 {{global 'let' declaration requires an initializer expression}}
44+ // expected-note@-3 {{add an initializer to silence this error}} {{27-27= = <#initializer#>}}
3645override class let glu4 : Int // expected-error {{class properties may only be declared on a type}}{{10-16=}}
3746 // expected-error@-1 {{'override' can only be specified on class members}}{{1-10=}}
3847 // expected-error@-2 {{global 'let' declaration requires an initializer expression}}
48+ // expected-note@-3 {{add an initializer to silence this error}} {{26-26= = <#initializer#>}}
3949static override let glu5 : Int // expected-error {{static properties may only be declared on a type}}{{1-8=}}
4050 // expected-error@-1 {{'override' can only be specified on class members}}{{8-17=}}
4151 // expected-error@-2 {{global 'let' declaration requires an initializer expression}}
52+ // expected-note@-3 {{add an initializer to silence this error}} {{27-27= = <#initializer#>}}
4253class override let glu6 : Int // expected-error {{class properties may only be declared on a type}}{{1-7=}}
4354 // expected-error@-1 {{'override' can only be specified on class members}}{{7-16=}}
4455 // expected-error@-2 {{global 'let' declaration requires an initializer expression}}
56+ // expected-note@-3 {{add an initializer to silence this error}} {{26-26= = <#initializer#>}}
4557
4658
4759static var gvi1 : Int = 0 // expected-error {{static properties may only be declared on a type}}{{1-8=}}
@@ -187,7 +199,8 @@ extension P {
187199
188200struct S1 {
189201 // rdar://15626843
190- static var x : Int // expected-error {{'static var' declaration requires an initializer expression or getter/setter specifier}}
202+ static var x : Int // expected-error {{'static var' declaration requires an initializer expression or an explicitly stated getter}}
203+ // expected-note@-1 {{add an initializer to silence this error}} {{17-17= = <#initializer#>}}
191204 var y = 1
192205
193206 static var z = 5
@@ -205,7 +218,20 @@ enum E1 {
205218}
206219
207220class C1 {
208- class var x : Int // expected-error {{class stored properties not supported}} expected-error {{'class var' declaration requires an initializer expression or getter/setter specifier}}
221+ class var x : Int // expected-error {{class stored properties not supported}} expected-error {{'class var' declaration requires an initializer expression or an explicitly stated getter}}
222+ // expected-note@-1 {{add an initializer to silence this error}} {{16-16= = <#initializer#>}}
223+ class let x : Int // expected-error {{class stored properties not supported}} expected-error {{'class let' declaration requires an initializer expression or an explicitly stated getter}}
224+ // expected-note@-1 {{add an initializer to silence this error}} {{16-16= = <#initializer#>}}
225+ static var x : Int // expected-error {{'static var' declaration requires an initializer expression or an explicitly stated getter}}
226+ // expected-note@-1 {{add an initializer to silence this error}} {{17-17= = <#initializer#>}}
227+ static let x : Int // expected-error {{'static let' declaration requires an initializer expression or an explicitly stated getter}}
228+ // expected-note@-1 {{add an initializer to silence this error}} {{17-17= = <#initializer#>}}
229+
230+ // FIXME: We immediately invalidate the pattern binding after the first error
231+ // is emitted, but we could definitely emit a second round of fixits for the
232+ // other pattern here.
233+ static var ( x, y) : ( Int , Int ) , ( z, w) : ( Int , Int ) // expected-error {{'static var' declaration requires an initializer expression or an explicitly stated getter}}
234+ // expected-note@-1 {{add an initializer to silence this error}} {{31-31= = <#initializer#>}}
209235}
210236
211237class C2 {
0 commit comments