From: Mateusz Poliwczak Date: Thu, 20 Mar 2025 08:12:17 +0000 (+0100) Subject: go/parser: add *ast.BlockStmt depth test X-Git-Tag: go1.25rc1~651 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=19b6f0116181c4dfbb21b82f7527383337666069;p=gostls13.git go/parser: add *ast.BlockStmt depth test At first glance i have thought that we do not handle such case properly, because parseBlockStmt and parseStmtList do not call call the incNestLev. Fortunately parseStmt does, so it is detected properly. As we don't have a test case directly for blockstmts only, i think it is worth adding one. Change-Id: If149b86fd90a7ee4a33c861070d1bafdd40e98ff Reviewed-on: https://go-review.googlesource.com/c/go/+/659455 Reviewed-by: Roland Shoemaker Commit-Queue: Robert Griesemer LUCI-TryBot-Result: Go LUCI Reviewed-by: Robert Griesemer Auto-Submit: Robert Griesemer --- diff --git a/src/go/parser/parser_test.go b/src/go/parser/parser_test.go index 869d803df6..714a6e0237 100644 --- a/src/go/parser/parser_test.go +++ b/src/go/parser/parser_test.go @@ -632,6 +632,7 @@ var parseDepthTests = []struct { {name: "go", format: "package main; func main() { «go func() { «» }()» }", parseMultiplier: 2, scope: true}, // Parser nodes: GoStmt, FuncLit {name: "defer", format: "package main; func main() { «defer func() { «» }()» }", parseMultiplier: 2, scope: true}, // Parser nodes: DeferStmt, FuncLit {name: "select", format: "package main; func main() { «select { default: «» }» }", scope: true}, + {name: "block", format: "package main; func main() { «{«»}» }", scope: true}, } // split splits pre«mid»post into pre, mid, post.