Skip to content

Commit f0932ab

Browse files
authored
Use swift-macro-testing (#20)
This PR uses swift-macro-testing for easier and manageable macro testing.
1 parent b380093 commit f0932ab

File tree

9 files changed

+604
-711
lines changed

9 files changed

+604
-711
lines changed

Package.resolved

Lines changed: 37 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Package.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ let package = Package(
2626
.upToNextMinor(from: "1.1.0"),
2727
),
2828
.package(url: "https://github.com/apple/swift-docc-plugin", from: "1.4.5"),
29+
.package(url: "https://github.com/pointfreeco/swift-macro-testing.git", from: "0.6.4"),
2930
],
3031
targets: [
3132
.macro(
@@ -75,6 +76,7 @@ let package = Package(
7576
dependencies: [
7677
"BinaryParseKitMacros",
7778
.product(name: "SwiftSyntaxMacrosTestSupport", package: "swift-syntax"),
79+
.product(name: "MacroTesting", package: "swift-macro-testing"),
7880
],
7981
),
8082
.testTarget(

Sources/BinaryParseKitMacros/Macros/ParseEnum/ParseEnumCase.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ import SwiftDiagnostics
88
import SwiftSyntax
99
import SwiftSyntaxMacros
1010

11-
class ParseEnumCase<C: MacroExpansionContext>: SyntaxVisitor {
12-
private let context: C
11+
class ParseEnumCase: SyntaxVisitor {
12+
private let context: any MacroExpansionContext
1313

1414
private var workEnum: EnumDeclSyntax?
15-
private var currentParseMacroVisitor: MacroAttributeCollector<C>?
15+
private var currentParseMacroVisitor: MacroAttributeCollector?
1616
private var currentCaseElements: EnumCaseElementListSyntax?
1717
private var caseParseInfo: [EnumCaseParseInfo] = []
1818
private(set) var parsedInfo: EnumParseInfo?
@@ -21,7 +21,7 @@ class ParseEnumCase<C: MacroExpansionContext>: SyntaxVisitor {
2121

2222
private var errors: [Diagnostic] = []
2323

24-
init(context: C) {
24+
init(context: any MacroExpansionContext) {
2525
self.context = context
2626
super.init(viewMode: .sourceAccurate)
2727
}

Sources/BinaryParseKitMacros/Macros/ParseStruct/ParseStructField.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import SwiftSyntax
1111
import SwiftSyntaxBuilder
1212
import SwiftSyntaxMacros
1313

14-
class ParseStructField<C: MacroExpansionContext>: SyntaxVisitor {
14+
class ParseStructField: SyntaxVisitor {
1515
struct VariableInfo {
1616
let type: TypeSyntax
1717
let parseActions: [StructParseAction]
@@ -24,17 +24,17 @@ class ParseStructField<C: MacroExpansionContext>: SyntaxVisitor {
2424

2525
typealias ParseVariableMapping = OrderedDictionary<TokenSyntax, VariableInfo>
2626

27-
private let context: C
27+
private let context: any MacroExpansionContext
2828

2929
private var hasParse: Bool = false
30-
private var structFieldVisitor: MacroAttributeCollector<C>?
30+
private var structFieldVisitor: MacroAttributeCollector?
3131
private var existParseRestContent: Bool = false
3232

3333
private(set) var variables: ParseVariableMapping = [:]
3434

3535
private(set) var errors: [Diagnostic] = []
3636

37-
init(context: C) {
37+
init(context: any MacroExpansionContext) {
3838
self.context = context
3939
super.init(viewMode: .sourceAccurate)
4040
}

Sources/BinaryParseKitMacros/Macros/Supports/MacroAttributeCollector.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import SwiftDiagnostics
99
import SwiftSyntax
1010
import SwiftSyntaxMacros
1111

12-
class MacroAttributeCollector<C: MacroExpansionContext>: SyntaxVisitor {
12+
class MacroAttributeCollector: SyntaxVisitor {
1313
private enum MacroError: Error {
1414
case invalidParseAttribute
1515
case invalidParseRestAttribute
@@ -20,7 +20,7 @@ class MacroAttributeCollector<C: MacroExpansionContext>: SyntaxVisitor {
2020
typealias ParseAction = StructParseAction
2121
typealias CaseMatchAction = EnumCaseMatchAction
2222

23-
private let context: C
23+
private let context: any MacroExpansionContext
2424
private(set) var parseActions: [ParseAction] = []
2525
private(set) var hasParseRest: Bool = false
2626
private(set) var hasParse: Bool = false
@@ -29,7 +29,7 @@ class MacroAttributeCollector<C: MacroExpansionContext>: SyntaxVisitor {
2929

3030
private var errors: [Diagnostic] = []
3131

32-
init(context: C) {
32+
init(context: any MacroExpansionContext) {
3333
self.context = context
3434
super.init(viewMode: .sourceAccurate)
3535
}

Sources/BinaryParseKitMacros/Macros/Supports/ParseMacroInfo.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,16 @@ import SwiftDiagnostics
1010
import SwiftSyntax
1111
import SwiftSyntaxMacros
1212

13-
private class ParseMacroArgVisitor<C: MacroExpansionContext>: SyntaxVisitor {
13+
private class ParseMacroArgVisitor: SyntaxVisitor {
1414
var source: Syntax?
1515
var byteCountOfArgument: LabeledExprSyntax?
1616
var byteCountArgument: LabeledExprSyntax?
1717
var endiannessArgument: LabeledExprSyntax?
1818

1919
private var errors: [Diagnostic] = []
2020

21-
private let context: C
22-
init(context: C) {
21+
private let context: any MacroExpansionContext
22+
init(context: any MacroExpansionContext) {
2323
self.context = context
2424
super.init(viewMode: .sourceAccurate)
2525
}

0 commit comments

Comments
 (0)