From 0cbe30467ad2b4823bc07a8784ca66aff7cdb20a Mon Sep 17 00:00:00 2001 From: Cuong Manh Le Date: Sat, 1 Oct 2022 00:23:48 +0700 Subject: [PATCH] test: relax closure name matching in closure3.go The mismatch between Unified IR and the old frontend is not about how they number the closures, but how they name them. For nested closure, the old frontend use the immediate function which contains the closure as the outer function, while Unified IR uses the outer most function as the outer for all closures. That said, what important is matching the number of closures, not their name prefix. So this CL relax the test to match both "main.func1.func2" and "main.func1.2" to satisfy both Unified IR and the old frontend. Updates #53058 Change-Id: I66ed816d1968aa68dd3089a4ea5850ba30afd75b Reviewed-on: https://go-review.googlesource.com/c/go/+/437216 Reviewed-by: Matthew Dempsky Reviewed-by: Dmitri Shuralyov Run-TryBot: Cuong Manh Le Auto-Submit: Cuong Manh Le TryBot-Result: Gopher Robot --- test/closure3.dir/main.go | 8 ++++---- test/run.go | 3 +-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/test/closure3.dir/main.go b/test/closure3.dir/main.go index 7ef0a47595..4d02a4d10e 100644 --- a/test/closure3.dir/main.go +++ b/test/closure3.dir/main.go @@ -252,10 +252,10 @@ func main() { b := 3 return func(y int) int { // ERROR "can inline main.func27.1" c := 5 - return func(z int) int { // ERROR "can inline main.func27.1.1" "can inline main.func27.2" + return func(z int) int { // ERROR "can inline main.func27.1.1" "can inline main.func27.(func)?2" return a*x + b*y + c*z }(10) // ERROR "inlining call to main.func27.1.1" - }(100) // ERROR "inlining call to main.func27.1" "inlining call to main.func27.2" + }(100) // ERROR "inlining call to main.func27.1" "inlining call to main.func27.(func)?2" }(1000); r != 2350 { ppanic("r != 2350") } @@ -267,13 +267,13 @@ func main() { b := 3 return func(y int) int { // ERROR "can inline main.func28.1" c := 5 - func(z int) { // ERROR "can inline main.func28.1.1" "can inline main.func28.2" + func(z int) { // ERROR "can inline main.func28.1.1" "can inline main.func28.(func)?2" a = a * x b = b * y c = c * z }(10) // ERROR "inlining call to main.func28.1.1" return a + c - }(100) + b // ERROR "inlining call to main.func28.1" "inlining call to main.func28.2" + }(100) + b // ERROR "inlining call to main.func28.1" "inlining call to main.func28.(func)?2" }(1000); r != 2350 { ppanic("r != 2350") } diff --git a/test/run.go b/test/run.go index 34b9675d2e..e33ab4cff3 100644 --- a/test/run.go +++ b/test/run.go @@ -2020,8 +2020,7 @@ var _ = setOf( ) var unifiedFailures = setOf( - "closure3.go", // unified IR numbers closures differently than -d=inlfuncswithclosures - "escape4.go", // unified IR can inline f5 and f6; test doesn't expect this + "escape4.go", // unified IR can inline f5 and f6; test doesn't expect this ) func setOf(keys ...string) map[string]bool { -- 2.50.0