From 1ab759e214a38fc2a1da6a29bb00fdc3cf429031 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Fri, 19 Dec 2025 17:41:21 +0100 Subject: [PATCH] Port "Fixed crash when adding unreachable code diagnostic in situations with missing nodes" --- internal/checker/checker.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/internal/checker/checker.go b/internal/checker/checker.go index b15adea095..f2a212a060 100644 --- a/internal/checker/checker.go +++ b/internal/checker/checker.go @@ -2302,8 +2302,8 @@ func (c *Checker) checkSourceElementUnreachable(node *ast.Node) bool { sourceFile := ast.GetSourceFileOfNode(node) - start := node.Pos() - end := node.End() + startNode := node + endNode := node parent := node.Parent if parent.CanHaveStatements() { @@ -2333,14 +2333,14 @@ func (c *Checker) checkSourceElementUnreachable(node *ast.Node) bool { c.reportedUnreachableNodes.Add(nextNode) } - start = statements[first].Pos() - end = statements[last].End() + startNode = statements[first] + endNode = statements[last] } } - start = scanner.SkipTrivia(sourceFile.Text(), start) + start := scanner.GetTokenPosOfNode(startNode, sourceFile, false /*includeJSDoc*/) - diagnostic := ast.NewDiagnostic(sourceFile, core.NewTextRange(start, end), diagnostics.Unreachable_code_detected) + diagnostic := ast.NewDiagnostic(sourceFile, core.NewTextRange(start, endNode.End()), diagnostics.Unreachable_code_detected) c.addErrorOrSuggestion(c.compilerOptions.AllowUnreachableCode == core.TSFalse, diagnostic) return true