Skip to content

Commit 6fa5325

Browse files
author
Stephane Magne
committed
Add static to ComputedProperty. Fix ordering on Property.
1 parent 41a8929 commit 6fa5325

File tree

1 file changed

+56
-48
lines changed

1 file changed

+56
-48
lines changed

Sources/Meta/Property.swift

Lines changed: 56 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -6,40 +6,39 @@
66
//
77

88
public struct Property: Hashable, Node {
9-
9+
1010
public var accessLevel: AccessLevel = .default
11-
11+
1212
public var objc = false
13-
13+
1414
public var `static` = false
15-
15+
1616
public let variable: Variable
17-
17+
1818
public var value: VariableValue?
19-
20-
19+
2120
public init(variable: Variable) {
2221
self.variable = variable
2322
}
24-
23+
2524
public func with(accessLevel: AccessLevel) -> Property {
2625
var _self = self
2726
_self.accessLevel = accessLevel
2827
return _self
2928
}
30-
29+
3130
public func with(objc: Bool) -> Property {
3231
var _self = self
3332
_self.objc = objc
3433
return _self
3534
}
36-
35+
3736
public func with(static: Bool) -> Property {
3837
var _self = self
3938
_self.static = `static`
4039
return _self
4140
}
42-
41+
4342
public func with(value: VariableValue?) -> Property {
4443
var _self = self
4544
_self.value = value
@@ -50,18 +49,18 @@ public struct Property: Hashable, Node {
5049
extension Property: TypeBodyMember {}
5150

5251
public struct ProtocolProperty: Hashable, Node {
53-
52+
5453
public let name: String
55-
54+
5655
public let type: TypeIdentifier
57-
56+
5857
public var setter = false
59-
58+
6059
public init(name: String, type: TypeIdentifier) {
6160
self.name = name
6261
self.type = type
6362
}
64-
63+
6564
public func with(setter: Bool) -> ProtocolProperty {
6665
var _self = self
6766
_self.setter = setter
@@ -72,43 +71,51 @@ public struct ProtocolProperty: Hashable, Node {
7271
extension ProtocolProperty: TypeBodyMember {}
7372

7473
public struct ComputedProperty: Hashable, Node {
75-
74+
7675
public var accessLevel: AccessLevel = .default
77-
76+
7877
public var objc = false
79-
78+
79+
public var `static` = false
80+
8081
public let variable: Variable
81-
82+
8283
public var body: [FunctionBodyMember] = []
83-
84+
8485
public init(variable: Variable) {
8586
self.variable = variable
8687
}
87-
88+
8889
public func with(accessLevel: AccessLevel) -> ComputedProperty {
8990
var _self = self
9091
_self.accessLevel = accessLevel
9192
return _self
9293
}
93-
94+
9495
public func with(objc: Bool) -> ComputedProperty {
9596
var _self = self
9697
_self.objc = objc
9798
return _self
9899
}
99-
100+
101+
public func with(static: Bool) -> ComputedProperty {
102+
var _self = self
103+
_self.static = `static`
104+
return _self
105+
}
106+
100107
public func with(body: [FunctionBodyMember]) -> ComputedProperty {
101108
var _self = self
102109
_self.body = body
103110
return _self
104111
}
105-
112+
106113
public func adding(member: FunctionBodyMember?) -> ComputedProperty {
107114
var _self = self
108115
_self.body += [member].compactMap { $0 }
109116
return _self
110117
}
111-
118+
112119
public func adding(members: [FunctionBodyMember]) -> ComputedProperty {
113120
var _self = self
114121
_self.body += members
@@ -119,55 +126,55 @@ public struct ComputedProperty: Hashable, Node {
119126
extension ComputedProperty: TypeBodyMember {}
120127

121128
public struct GetterSetter: Hashable, Node {
122-
129+
123130
public var accessLevel: AccessLevel = .default
124-
131+
125132
public let variable: Variable
126-
133+
127134
public var getterBody: [FunctionBodyMember]?
128-
135+
129136
public var setterBody: [FunctionBodyMember]?
130-
137+
131138
public init(variable: Variable) {
132139
self.variable = variable
133140
}
134-
141+
135142
public func with(accessLevel: AccessLevel) -> GetterSetter {
136143
var _self = self
137144
_self.accessLevel = accessLevel
138145
return _self
139146
}
140-
147+
141148
public func with(getter body: [FunctionBodyMember]?) -> GetterSetter {
142149
var _self = self
143150
_self.getterBody = body
144151
return _self
145152
}
146-
153+
147154
public func adding(getterMember: FunctionBodyMember?) -> GetterSetter {
148155
var _self = self
149156
_self.getterBody = (_self.getterBody ?? []) + [getterMember].compactMap { $0 }
150157
return _self
151158
}
152-
159+
153160
public func adding(getterMember: [FunctionBodyMember]) -> GetterSetter {
154161
var _self = self
155162
_self.getterBody = (_self.getterBody ?? []) + getterMember
156163
return _self
157164
}
158-
165+
159166
public func with(setter body: [FunctionBodyMember]?) -> GetterSetter {
160167
var _self = self
161168
_self.setterBody = body
162169
return _self
163170
}
164-
171+
165172
public func adding(setterMember: FunctionBodyMember?) -> GetterSetter {
166173
var _self = self
167174
_self.setterBody = (_self.setterBody ?? []) + [setterMember].compactMap { $0 }
168175
return _self
169176
}
170-
177+
171178
public func adding(setterMember: [FunctionBodyMember]) -> GetterSetter {
172179
var _self = self
173180
_self.setterBody = (_self.setterBody ?? []) + setterMember
@@ -180,38 +187,39 @@ extension GetterSetter: TypeBodyMember {}
180187
// MARK: - MetaSwiftConvertible
181188

182189
extension Property {
183-
190+
184191
public var swiftString: String {
185192
let objc = self.objc ? "@objc " : .empty
186193
let `static` = self.static ? "static " : .empty
187194
let value = self.value?.swiftString.prefixed(" = ") ?? .empty
188-
return "\(objc)\(`static`)\(accessLevel.swiftString.suffixed(" "))\(variable.swiftString)\(value)"
195+
return "\(objc)\(accessLevel.swiftString.suffixed(" "))\(`static`)\(variable.swiftString)\(value)"
189196
}
190197
}
191198

192199
extension ProtocolProperty {
193-
200+
194201
public var swiftString: String {
195202
return "var \(name): \(type.swiftString) { get\(setter ? " set" : .empty) }"
196203
}
197204
}
198205

199206
extension ComputedProperty {
200-
207+
201208
public var swiftString: String {
202209
let objc = self.objc ? "@objc " : .empty
210+
let `static` = self.static ? "static " : .empty
203211
return """
204-
\(objc)\(accessLevel.swiftString.suffixed(" "))\(variable.with(immutable: false).swiftString) {
212+
\(objc)\(accessLevel.swiftString.suffixed(" "))\(`static`)\(variable.with(immutable: false).swiftString) {
205213
\(body.map { $0.swiftString }.indented)
206214
}
207215
"""
208216
}
209217
}
210218

211219
extension GetterSetter {
212-
220+
213221
public var swiftString: String {
214-
222+
215223
let getter: String
216224
if let getterBody = getterBody {
217225
getter = """
@@ -222,19 +230,19 @@ extension GetterSetter {
222230
} else {
223231
getter = .empty
224232
}
225-
233+
226234
let setter: String
227235
if let setterBody = setterBody {
228236
setter = """
229-
237+
230238
set {
231239
\(setterBody.map {$0.swiftString }.indented)
232240
}
233241
"""
234242
} else {
235243
setter = .empty
236244
}
237-
245+
238246
return """
239247
\(accessLevel.swiftString.suffixed(" "))\(variable.with(immutable: false).swiftString) {
240248
\(getter.indented)\(setter.indented)

0 commit comments

Comments
 (0)