Skip to content

Commit

Permalink
Avoid additional trailing closure offset crash
Browse files Browse the repository at this point in the history
A MacroTesting bug report encounted an index crash:

pointfreeco/swift-macro-testing#6

Even when updating to `index(_:offsetBy:limitedBy:)`, the crash
remained, so I've resorted to more explicit limiting math. This seems to
fix the crash.
  • Loading branch information
stephencelis committed Oct 6, 2023
1 parent 8ce00fa commit 4e67dfb
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions Sources/InlineSnapshotTesting/AssertInlineSnapshot.swift
Original file line number Diff line number Diff line change
Expand Up @@ -566,15 +566,15 @@ private final class SnapshotVisitor: SyntaxVisitor {
}

case 1...:
self.trailingClosureLine =
functionCallExpr.additionalTrailingClosures[
functionCallExpr.additionalTrailingClosures.index(
functionCallExpr.additionalTrailingClosures.startIndex,
offsetBy: centeredTrailingClosureOffset - 1
)
]
.startLocation(converter: self.sourceLocationConverter)
.line
let index = functionCallExpr.additionalTrailingClosures.index(
functionCallExpr.additionalTrailingClosures.startIndex,
offsetBy: centeredTrailingClosureOffset - 1
)
if centeredTrailingClosureOffset - 1 < functionCallExpr.additionalTrailingClosures.count {
self.trailingClosureLine = functionCallExpr.additionalTrailingClosures[index]
.startLocation(converter: self.sourceLocationConverter)
.line
}
default:
break
}
Expand Down

0 comments on commit 4e67dfb

Please sign in to comment.