Skip to content

Commit 3771c88

Browse files
committed
Avoid additional trailing closure offset crash
A MacroTesting bug report encountered 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.
1 parent 8ce00fa commit 3771c88

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

Sources/InlineSnapshotTesting/AssertInlineSnapshot.swift

+9-9
Original file line numberDiff line numberDiff line change
@@ -566,15 +566,15 @@ private final class SnapshotVisitor: SyntaxVisitor {
566566
}
567567

568568
case 1...:
569-
self.trailingClosureLine =
570-
functionCallExpr.additionalTrailingClosures[
571-
functionCallExpr.additionalTrailingClosures.index(
572-
functionCallExpr.additionalTrailingClosures.startIndex,
573-
offsetBy: centeredTrailingClosureOffset - 1
574-
)
575-
]
576-
.startLocation(converter: self.sourceLocationConverter)
577-
.line
569+
let index = functionCallExpr.additionalTrailingClosures.index(
570+
functionCallExpr.additionalTrailingClosures.startIndex,
571+
offsetBy: centeredTrailingClosureOffset - 1
572+
)
573+
if centeredTrailingClosureOffset - 1 < functionCallExpr.additionalTrailingClosures.count {
574+
self.trailingClosureLine = functionCallExpr.additionalTrailingClosures[index]
575+
.startLocation(converter: self.sourceLocationConverter)
576+
.line
577+
}
578578
default:
579579
break
580580
}

0 commit comments

Comments
 (0)