]> Cypherpunks repositories - gostls13.git/commitdiff
go/parser: add *ast.BlockStmt depth test
authorMateusz Poliwczak <mpoliwczak34@gmail.com>
Thu, 20 Mar 2025 08:12:17 +0000 (09:12 +0100)
committerGopher Robot <gobot@golang.org>
Thu, 20 Mar 2025 15:38:53 +0000 (08:38 -0700)
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 <roland@golang.org>
Commit-Queue: Robert Griesemer <gri@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Robert Griesemer <gri@google.com>
Auto-Submit: Robert Griesemer <gri@google.com>

src/go/parser/parser_test.go

index 869d803df67475cacd72231d020a1e7a7eb1a00e..714a6e02375c0e12b113134c8ff961b7589bce28 100644 (file)
@@ -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.