Skip to content

Commit 3192f7a

Browse files
committed
wip
1 parent b33cf73 commit 3192f7a

File tree

4 files changed

+69
-84
lines changed

4 files changed

+69
-84
lines changed

Sources/StructuredQueriesMacros/TableMacro.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -870,7 +870,7 @@ extension TableMacro: ExtensionMacro {
870870
])
871871
let columnWidth: ExprSyntax = """
872872
var columnWidth = 0
873-
columnWidth += \(columnWidths, separator: "; columnWidth += ")
873+
columnWidth += \(columnWidths, separator: "\ncolumnWidth += ")
874874
return columnWidth
875875
"""
876876

Sources/StructuredQueriesSQLiteMacros/DatabaseFunctionMacro.swift

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ extension DatabaseFunctionMacro: PeerMacro {
102102

103103
let functionTypeName = context.makeUniqueName(declarationName)
104104
let databaseFunctionName = StringLiteralExprSyntax(content: functionName)
105-
var argumentCount: [ExprSyntax] = []
105+
var argumentCounts: [ExprSyntax] = []
106106

107107
var bodyArguments: [String] = []
108108
var representableInputTypes: [String] = []
@@ -144,7 +144,7 @@ extension DatabaseFunctionMacro: PeerMacro {
144144
parameters.append(parameterName)
145145
argumentBindings.append(parameterName)
146146

147-
argumentCount.append("\(type)")
147+
argumentCounts.append("\(type)")
148148
decodings.append("let \(parameterName) = try decoder.decode(\(type).self)")
149149
decodingUnwrappings.append("guard let \(parameterName) else { throw InvalidInvocation() }")
150150
}
@@ -215,6 +215,15 @@ extension DatabaseFunctionMacro: PeerMacro {
215215
? representableInputType
216216
: "(\(representableInputType))"
217217

218+
let argumentCount =
219+
argumentCounts.isEmpty
220+
? "0"
221+
: """
222+
var argumentCount = 0
223+
\(argumentCounts.map { "argumentCount += \($0)._columnWidth\n" }.joined())\
224+
return argumentCount
225+
"""
226+
218227
return [
219228
"""
220229
\(attributes)\(access)\(`static`)var $\(raw: declarationName): \(functionTypeName) {
@@ -227,10 +236,8 @@ extension DatabaseFunctionMacro: PeerMacro {
227236
public typealias Input = \(raw: representableInputType)
228237
public typealias Output = \(representableOutputType)
229238
public let name = \(databaseFunctionName)
230-
public var argumentCount: Int? { \
231-
var argumentCount = 0
232-
argumentCount += \(raw: argumentCount.isEmpty ? "0" : argumentCount.map { "\($0)._columnWidth" }.joined(separator: "; argumentCount += "))
233-
return argumentCount
239+
public var argumentCount: Int? {
240+
\(raw: argumentCount)
234241
}
235242
public let isDeterministic = \(raw: isDeterministic)
236243
public let body: \(raw: bodyType)

Tests/StructuredQueriesMacrosTests/DatabaseFunctionMacroTests.swift

Lines changed: 15 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,7 @@ extension SnapshotTests {
2828
public typealias Output = Date
2929
public let name = "currentDate"
3030
public var argumentCount: Int? {
31-
var argumentCount = 0
32-
argumentCount += 0
33-
return argumentCount
31+
0
3432
}
3533
public let isDeterministic = false
3634
public let body: () -> Date
@@ -82,9 +80,7 @@ extension SnapshotTests {
8280
public typealias Output = Date
8381
public let name = "current_date"
8482
public var argumentCount: Int? {
85-
var argumentCount = 0
86-
argumentCount += 0
87-
return argumentCount
83+
0
8884
}
8985
public let isDeterministic = false
9086
public let body: () -> Date
@@ -194,9 +190,7 @@ extension SnapshotTests {
194190
public typealias Output = Int
195191
public let name = "fortyTwo"
196192
public var argumentCount: Int? {
197-
var argumentCount = 0
198-
argumentCount += 0
199-
return argumentCount
193+
0
200194
}
201195
public let isDeterministic = true
202196
public let body: () -> Int
@@ -481,7 +475,7 @@ extension SnapshotTests {
481475
public let name = "concat"
482476
public var argumentCount: Int? {
483477
var argumentCount = 0
484-
argumentCount += String._columnWidth;
478+
argumentCount += String._columnWidth
485479
argumentCount += String._columnWidth
486480
return argumentCount
487481
}
@@ -618,9 +612,7 @@ extension SnapshotTests {
618612
public typealias Output = Date
619613
public let name = "currentDate"
620614
public var argumentCount: Int? {
621-
var argumentCount = 0
622-
argumentCount += 0
623-
return argumentCount
615+
0
624616
}
625617
public let isDeterministic = false
626618
public let body: () throws -> Date
@@ -676,9 +668,7 @@ extension SnapshotTests {
676668
public typealias Output = Date
677669
public let name = "currentDate"
678670
public var argumentCount: Int? {
679-
var argumentCount = 0
680-
argumentCount += 0
681-
return argumentCount
671+
0
682672
}
683673
public let isDeterministic = false
684674
public let body: () throws(MyError) -> Date
@@ -734,9 +724,7 @@ extension SnapshotTests {
734724
public typealias Output = Date
735725
public let name = "currentDate"
736726
public var argumentCount: Int? {
737-
var argumentCount = 0
738-
argumentCount += 0
739-
return argumentCount
727+
0
740728
}
741729
public let isDeterministic = false
742730
public let body: () -> Date
@@ -788,9 +776,7 @@ extension SnapshotTests {
788776
public typealias Output = Date
789777
public let name = "currentDate"
790778
public var argumentCount: Int? {
791-
var argumentCount = 0
792-
argumentCount += 0
793-
return argumentCount
779+
0
794780
}
795781
public let isDeterministic = false
796782
public let body: () -> Date
@@ -865,9 +851,7 @@ extension SnapshotTests {
865851
public typealias Output = Date
866852
public let name = "currentDate"
867853
public var argumentCount: Int? {
868-
var argumentCount = 0
869-
argumentCount += 0
870-
return argumentCount
854+
0
871855
}
872856
public let isDeterministic = false
873857
public let body: () -> Date
@@ -919,9 +903,7 @@ extension SnapshotTests {
919903
public typealias Output = Int
920904
public let name = "default"
921905
public var argumentCount: Int? {
922-
var argumentCount = 0
923-
argumentCount += 0
924-
return argumentCount
906+
0
925907
}
926908
public let isDeterministic = false
927909
public let body: () -> Int
@@ -973,9 +955,7 @@ extension SnapshotTests {
973955
public typealias Output = Swift.Void
974956
public let name = "void"
975957
public var argumentCount: Int? {
976-
var argumentCount = 0
977-
argumentCount += 0
978-
return argumentCount
958+
0
979959
}
980960
public let isDeterministic = false
981961
public let body: () -> Swift.Void
@@ -1022,9 +1002,7 @@ extension SnapshotTests {
10221002
public typealias Output = Swift.Void
10231003
public let name = "void"
10241004
public var argumentCount: Int? {
1025-
var argumentCount = 0
1026-
argumentCount += 0
1027-
return argumentCount
1005+
0
10281006
}
10291007
public let isDeterministic = false
10301008
public let body: () throws -> Swift.Void
@@ -1085,7 +1063,7 @@ extension SnapshotTests {
10851063
public let name = "min"
10861064
public var argumentCount: Int? {
10871065
var argumentCount = 0
1088-
argumentCount += Int._columnWidth;
1066+
argumentCount += Int._columnWidth
10891067
argumentCount += Int._columnWidth
10901068
return argumentCount
10911069
}
@@ -1152,7 +1130,7 @@ extension SnapshotTests {
11521130
public let name = "min"
11531131
public var argumentCount: Int? {
11541132
var argumentCount = 0
1155-
argumentCount += Int._columnWidth;
1133+
argumentCount += Int._columnWidth
11561134
argumentCount += Int._columnWidth
11571135
return argumentCount
11581136
}
@@ -1216,7 +1194,7 @@ extension SnapshotTests {
12161194
public let name = "isValid"
12171195
public var argumentCount: Int? {
12181196
var argumentCount = 0
1219-
argumentCount += Reminder._columnWidth;
1197+
argumentCount += Reminder._columnWidth
12201198
argumentCount += Bool._columnWidth
12211199
return argumentCount
12221200
}

0 commit comments

Comments
 (0)