@@ -34,6 +34,23 @@ func myOwnFatalError() -> MyOwnNever { fatalError() }
34
34
35
35
func identity< T> ( _ t: T ) -> T { t }
36
36
37
+ internal func _fatalErrorFlags( ) -> UInt32 {
38
+ return 0
39
+ }
40
+ internal func _assertionFailure(
41
+ _ prefix: StaticString , _ message: String ,
42
+ flags: UInt32
43
+ ) -> Never {
44
+ fatalError ( )
45
+ }
46
+ internal func _diagnoseUnexpectedEnumCaseValue< SwitchedValue, RawValue> (
47
+ type: SwitchedValue . Type ,
48
+ rawValue: RawValue
49
+ ) -> Never {
50
+ _assertionFailure ( " Fatal error " ,
51
+ " unexpected enum case ' \( type) (rawValue: \( rawValue) )' " ,
52
+ flags: _fatalErrorFlags ( ) )
53
+ }
37
54
38
55
39
56
// MARK: - Free Functions
@@ -62,6 +79,22 @@ func ff_implicitClosure() -> () -> Void {
62
79
{ print ( " howdy " ) }
63
80
}
64
81
82
+ func ff_explicitMultilineClosure( ) -> ( ) -> String {
83
+ return {
84
+ let one = " big a "
85
+ let two = " little a "
86
+ return " \( one) + \( two) "
87
+ }
88
+ }
89
+
90
+ func ff_implicitMultilineClosure( ) -> ( ) -> String {
91
+ {
92
+ let one = " big a "
93
+ let two = " little a "
94
+ return " \( one) + \( two) "
95
+ }
96
+ }
97
+
65
98
func ff_implicitWrong( ) -> String {
66
99
17 // expected-error {{cannot convert return expression of type 'Int' to return type 'String'}}
67
100
}
@@ -242,6 +275,22 @@ var fv_implicitClosure: () -> Void {
242
275
{ print ( " howdy " ) }
243
276
}
244
277
278
+ var fv_explicitMultilineClosure : ( ) -> String {
279
+ return {
280
+ let one = " big a "
281
+ let two = " little a "
282
+ return " \( one) + \( two) "
283
+ }
284
+ }
285
+
286
+ var fv_implicitMultilineClosure : ( ) -> String {
287
+ {
288
+ let one = " big a "
289
+ let two = " little a "
290
+ return " \( one) + \( two) "
291
+ }
292
+ }
293
+
245
294
var fv_implicitWrong : String {
246
295
17 // expected-error {{cannot convert return expression of type 'Int' to return type 'String'}}
247
296
}
@@ -400,6 +449,26 @@ var fvg_implicitClosure: () -> Void {
400
449
}
401
450
}
402
451
452
+ var fvg_explicitMultilineClosure : ( ) -> String {
453
+ get {
454
+ return {
455
+ let one = " big a "
456
+ let two = " little a "
457
+ return " \( one) + \( two) "
458
+ }
459
+ }
460
+ }
461
+
462
+ var fvg_implicitMultilineClosure : ( ) -> String {
463
+ get {
464
+ {
465
+ let one = " big a "
466
+ let two = " little a "
467
+ return " \( one) + \( two) "
468
+ }
469
+ }
470
+ }
471
+
403
472
var fvg_implicitWrong : String {
404
473
get {
405
474
17 // expected-error {{cannot convert return expression of type 'Int' to return type 'String'}}
@@ -726,6 +795,26 @@ enum S_implicitClosure {
726
795
}
727
796
}
728
797
798
+ enum S_explicitMultilineClosure {
799
+ subscript( ) -> ( ) -> String {
800
+ return {
801
+ let one = " big a "
802
+ let two = " little a "
803
+ return " \( one) + \( two) "
804
+ }
805
+ }
806
+ }
807
+
808
+ enum S_implicitMultilineClosure {
809
+ subscript( ) -> ( ) -> String {
810
+ {
811
+ let one = " big a "
812
+ let two = " little a "
813
+ return " \( one) + \( two) "
814
+ }
815
+ }
816
+ }
817
+
729
818
enum S_implicitWrong {
730
819
subscript( ) -> String {
731
820
17 // expected-error {{cannot convert return expression of type 'Int' to return type 'String'}}
@@ -932,6 +1021,30 @@ enum SRO_implicitClosure {
932
1021
}
933
1022
}
934
1023
1024
+ enum SRO_explicitMultilineClosure {
1025
+ subscript( ) -> ( ) -> String {
1026
+ get {
1027
+ return {
1028
+ let one = " big a "
1029
+ let two = " little a "
1030
+ return " \( one) + \( two) "
1031
+ }
1032
+ }
1033
+ }
1034
+ }
1035
+
1036
+ enum SRO_implicitMultilineClosure {
1037
+ subscript( ) -> ( ) -> String {
1038
+ get {
1039
+ {
1040
+ let one = " big a "
1041
+ let two = " little a "
1042
+ return " \( one) + \( two) "
1043
+ }
1044
+ }
1045
+ }
1046
+ }
1047
+
935
1048
enum SRO_implicitWrong {
936
1049
subscript( ) -> String {
937
1050
get {
0 commit comments