Skip to content
This repository was archived by the owner on Jun 1, 2023. It is now read-only.

Commit 7f9680e

Browse files
committed
Extract call to pop() from assertion for SourceFile.Visitor.
Assertions are disabled in release builds, which caused contexts to never be popped.
1 parent c34ccc1 commit 7f9680e

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

Sources/SwiftDoc/SourceFile.swift

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ public struct SourceFile: Hashable, Codable {
8989
visitedImports.append(`import`)
9090
}
9191

92+
@discardableResult
9293
func pop() -> Contextual? {
9394
return context.popLast()
9495
}
@@ -187,27 +188,33 @@ public struct SourceFile: Hashable, Codable {
187188
// MARK: -
188189

189190
override func visitPost(_ node: ClassDeclSyntax) {
190-
assert((pop() as? Symbol)?.api is Class)
191+
let context = pop()
192+
assert((context as? Symbol)?.api is Class)
191193
}
192194

193195
override func visitPost(_ node: EnumDeclSyntax) {
194-
assert((pop() as? Symbol)?.api is Enumeration)
196+
let context = pop()
197+
assert((context as? Symbol)?.api is Enumeration)
195198
}
196199

197200
override func visitPost(_ node: ExtensionDeclSyntax) {
198-
assert(pop() is Extension)
201+
let context = pop()
202+
assert(context is Extension)
199203
}
200204

201205
override func visitPost(_ node: IfConfigClauseSyntax) {
202-
assert(pop() is CompilationCondition)
206+
let context = pop()
207+
assert(context is CompilationCondition)
203208
}
204209

205210
override func visitPost(_ node: ProtocolDeclSyntax) {
206-
assert((pop() as? Symbol)?.api is Protocol)
211+
let context = pop()
212+
assert((context as? Symbol)?.api is Protocol)
207213
}
208214

209215
override func visitPost(_ node: StructDeclSyntax) {
210-
assert((pop() as? Symbol)?.api is Structure)
216+
let context = pop()
217+
assert((context as? Symbol)?.api is Structure)
211218
}
212219
}
213220
}

0 commit comments

Comments
 (0)