mirror of
https://github.com/golang/go
synced 2024-11-25 09:47:57 -07:00
[dev.unified] test: tweak nilcheck test
A subsequent CL will change Unified IR to emit extra temporary variables for multi-value expressions, because they're sometimes necessary for handling implicit conversions. A consequence of this is that: _, ok := m[""] will be rewritten into: autotmp_1, autotmp_2 := m[""] _, ok := autotmp_1, autotmp_2 As the comment in nilcheck.go says, we don't want this code sequence to emit any nil checks, and it doesn't either way. But only the second form results in the compiler reporting "removed nil check", and I can't make sense of why. Rather than splitting this test case into separate unified and nounified variants, it seems easier to just tweak the test case to the more complex form and verify that we correctly remove the nil check still. Change-Id: I6a9266db933b201352d52da4d403a330fdeac48b Reviewed-on: https://go-review.googlesource.com/c/go/+/415242 Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
This commit is contained in:
parent
95d7ce9ab1
commit
2f3ef73e18
@ -184,6 +184,7 @@ func f4(x *[10]int) {
|
|||||||
|
|
||||||
func f5(m map[string]struct{}) bool {
|
func f5(m map[string]struct{}) bool {
|
||||||
// Existence-only map lookups should not generate a nil check
|
// Existence-only map lookups should not generate a nil check
|
||||||
_, ok := m[""]
|
tmp1, tmp2 := m[""] // ERROR "removed nil check"
|
||||||
|
_, ok := tmp1, tmp2
|
||||||
return ok
|
return ok
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user