Skip to content

Commit 3c28e94

Browse files
authored
Merge pull request #212 from OpenSwiftUIProject/feature/variadic
Update VariadicView
2 parents 03ee0fd + bf4b43f commit 3c28e94

15 files changed

+910
-321
lines changed

Sources/OpenSwiftUI/CoreGlue/OpenSwiftUIGlue.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ public func OpenSwiftUIGlueClass() -> CoreGlue.Type {
1717
}
1818

1919
final class OpenSwiftUIGlue: CoreGlue {
20+
override var defaultImplicitRootType: DefaultImplicitRootTypeResult {
21+
DefaultImplicitRootTypeResult(_VStackLayout.self)
22+
}
23+
2024
override func makeDefaultLayoutComputer() -> MakeDefaultLayoutComputerResult {
2125
MakeDefaultLayoutComputerResult(value: ViewGraph.current.$defaultLayoutComputer)
2226
}

Sources/OpenSwiftUICore/CoreGlue/CoreGlue.swift

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,26 @@ import OpenSwiftUI_SPI
1515
@objc(OpenSwiftUICoreGlue)
1616
open class CoreGlue: NSObject {
1717
package static var shared: CoreGlue = _initializeCoreGlue() as! CoreGlue
18-
18+
19+
open var defaultImplicitRootType: DefaultImplicitRootTypeResult {
20+
preconditionFailure("")
21+
}
22+
1923
open func makeDefaultLayoutComputer() -> MakeDefaultLayoutComputerResult {
2024
preconditionFailure("")
2125
}
2226
}
2327

2428
@_spi(ForOpenSwiftUIOnly)
2529
extension CoreGlue {
30+
public struct DefaultImplicitRootTypeResult {
31+
package var value: any _VariadicView.AnyImplicitRoot.Type
32+
33+
package init(_ value: any _VariadicView.AnyImplicitRoot.Type) {
34+
self.value = value
35+
}
36+
}
37+
2638
public struct MakeDefaultLayoutComputerResult {
2739
package var value: Attribute<LayoutComputer>
2840

Sources/OpenSwiftUICore/Modifier/CustomViewModifier.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ extension ViewModifierContentProvider {
187187
return makeViewBody(_Graph(), inputs)
188188
case let .list(makeViewListBody):
189189
return .multiView(inputs: inputs) {
190-
makeViewListBody($0, .init($1.base, options: graphInputs[ViewListOptionsInput.self]))
190+
makeViewListBody($0, .init($1.base, options: graphInputs.viewListOptions))
191191
}
192192
}
193193
}

Sources/OpenSwiftUICore/View/CustomView.swift

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
// CustomView.swift
33
// OpenSwiftUICore
44
//
5-
// Audited for iOS 15.5
6-
// Status: WIP
5+
// Audited for iOS 18.0
6+
// Status: Complete
77
// ID: 9F92ACD17B554E8AB7D29ABB1E796415 (SwiftUI)
88
// ID: CE1D93D8ECBBEB5FE2E32E69A123E7CB (SwiftUICore)
99

@@ -26,17 +26,10 @@ extension View {
2626
let fields = DynamicPropertyCache.fields(of: Self.self)
2727
var inputs = inputs
2828
let (body, buffer) = makeBody(view: view, inputs: &inputs.base, fields: fields)
29-
// FIXME
30-
let outputs = _ViewDebug.makeView(
31-
view: body,
32-
inputs: inputs
33-
) { view, inputs in
34-
Body._makeView(view: body, inputs: inputs)
35-
}
3629
if let buffer {
3730
buffer.traceMountedProperties(to: body, fields: fields)
3831
}
39-
return outputs
32+
return Body.makeDebuggableView(view: body, inputs: inputs)
4033
}
4134

4235
nonisolated package static func makeViewList(view: _GraphValue<Self>, inputs: _ViewListInputs) -> _ViewListOutputs {

Sources/OpenSwiftUICore/View/DynamicViewContent.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ package struct DynamicViewContentOffsetTraitKey: _ViewTraitKey {
3333
package struct DynamicContentOffsetVisitor: ViewListVisitor {
3434
package var offset: Int?
3535

36-
package mutating func visit(view: _ViewList_View, traits: ViewTraitCollection) -> Bool {
36+
package mutating func visit(view: ViewList.View, traits: ViewTraitCollection) -> Bool {
3737
offset = traits.value(for: DynamicViewContentOffsetTraitKey.self)
3838
return false
3939
}

Sources/OpenSwiftUICore/View/IDView.swift

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,16 +53,15 @@ extension View {
5353
extension IDView {
5454
@usableFromInline
5555
package static func _makeView(view: _GraphValue<Self>, inputs: _ViewInputs) -> _ViewOutputs {
56-
// Disable SemanticFeature_v2 temporary as makeImplicitRoot has not been implemented yet
57-
// if _SemanticFeature_v2.isEnabled {
58-
// return makeImplicitRoot(view: view, inputs: inputs)
59-
// } else {
60-
let id = view.value[offset:{ .of(&$0.id) }]
56+
if _SemanticFeature_v2.isEnabled {
57+
return makeImplicitRoot(view: view, inputs: inputs)
58+
} else {
59+
let id = view.value[offset: { .of(&$0.id) }]
6160
let phase = IDPhase(id: id, phase: inputs.viewPhase, lastID: nil, delta: 0)
6261
var inputs = inputs
6362
inputs.viewPhase = Attribute(phase)
6463
return Content.makeDebuggableView(view: view[offset: { .of(&$0.content)}], inputs: inputs)
65-
// }
64+
}
6665
}
6766
}
6867

Sources/OpenSwiftUICore/View/Input/ViewList.swift

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ package import OpenGraphShims
1515
/// Input values to `View._makeViewList()`.
1616
public struct _ViewListInputs {
1717
package var base: _GraphInputs
18+
1819
package var implicitID: Int
1920

2021
package struct Options: OptionSet {
@@ -746,7 +747,7 @@ extension ViewList.Elements {
746747
}
747748
}
748749

749-
// MARK: - View.List.ID
750+
// MARK: - ViewList.ID
750751

751752
@_spi(ForOpenSwiftUIOnly)
752753
public struct _ViewList_ID: Hashable {
@@ -1950,21 +1951,3 @@ final package class _ViewList_ReleaseElements: Equatable {
19501951
return lhsBase == rhsBase
19511952
}
19521953
}
1953-
1954-
// FIXME: VariadicView Part
1955-
1956-
// MARK: - _ViewList_View
1957-
1958-
package struct _ViewList_View {
1959-
var elements: any ViewList.Elements
1960-
var id: _ViewList_ID
1961-
var index: Int
1962-
var count: Int
1963-
var contentSubgraph: Subgraph
1964-
}
1965-
1966-
// MARK: - ViewListVisitor
1967-
1968-
protocol ViewListVisitor {
1969-
mutating func visit(view: _ViewList_View, traits: ViewTraitCollection) -> Bool
1970-
}

Sources/OpenSwiftUICore/View/Variadic/VariadicView.swift

Lines changed: 0 additions & 49 deletions
This file was deleted.

Sources/OpenSwiftUICore/View/Variadic/VariadicView_Children.swift

Lines changed: 0 additions & 69 deletions
This file was deleted.

Sources/OpenSwiftUICore/View/Variadic/VariadicView_ImplicitRoot.swift

Lines changed: 0 additions & 24 deletions
This file was deleted.

Sources/OpenSwiftUICore/View/Variadic/VariadicView_Root.swift

Lines changed: 0 additions & 30 deletions
This file was deleted.

0 commit comments

Comments
 (0)