File tree Expand file tree Collapse file tree 1 file changed +87
-0
lines changed
validation-test/Sema/SwiftUI Expand file tree Collapse file tree 1 file changed +87
-0
lines changed Original file line number Diff line number Diff line change
1
+ // RUN: %target-typecheck-verify-swift -target %target-cpu-apple-macosx10.15 -swift-version 5 -experimental-multi-statement-closures
2
+ // REQUIRES: objc_interop
3
+ // REQUIRES: OS=macosx
4
+
5
+ import SwiftUI
6
+
7
+ enum Status {
8
+ case complete
9
+ case waiting
10
+ }
11
+
12
+ struct Item : Hashable {
13
+ var question : String
14
+ var answer : Int
15
+ }
16
+
17
+ func transform( _ v: Int ) -> String ? { return String ( v) }
18
+ func transform( _ v: Double ) -> String ? { return String ( v) }
19
+
20
+ struct MyView : View {
21
+ var status : Status
22
+
23
+ var items : [ Item ] = [ ]
24
+
25
+ var currItem : Item {
26
+ get { fatalError ( ) }
27
+ nonmutating set { }
28
+ }
29
+
30
+ var body : some View {
31
+ ZStack {
32
+ ItemsView {
33
+ EmptyView ( )
34
+ } results: {
35
+ switch ( status) {
36
+ case . complete:
37
+ ForEach ( items, id: \. self) { item in
38
+ if let question = item. question,
39
+ let answer = item. answer {
40
+ ItemView {
41
+ currItem. question = question
42
+ currItem. answer = answer
43
+ } content: {
44
+ AnswerView ( title: " " ,
45
+ color: . red,
46
+ answer: transform ( answer) ?? " " ,
47
+ selected: false )
48
+ }
49
+ }
50
+ }
51
+
52
+ default :
53
+ EmptyView ( )
54
+ }
55
+ }
56
+ }
57
+ }
58
+ }
59
+
60
+ struct AnswerView : View {
61
+ var title : String
62
+ var color : Color
63
+ var answer : String
64
+ var selected : Bool
65
+
66
+ var body : some View {
67
+ EmptyView ( )
68
+ }
69
+ }
70
+
71
+ struct ItemsView < Content: View , Results: View > : View {
72
+ @ViewBuilder var content : Content
73
+ @ViewBuilder var results : Results
74
+
75
+ var body : some View {
76
+ EmptyView ( )
77
+ }
78
+ }
79
+
80
+ struct ItemView < Content: View > : View {
81
+ var fn : ( ) -> Void
82
+ @ViewBuilder var content : Content
83
+
84
+ var body : some View {
85
+ EmptyView ( )
86
+ }
87
+ }
You can’t perform that action at this time.
0 commit comments