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