From: Cherry Mui Date: Thu, 16 Nov 2023 06:01:58 +0000 (-0500) Subject: reflect: uncomment allocation test X-Git-Tag: go1.22rc1~301 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=0434ca9ce87eb06c6b8ba42fa09eaee0dda8d381;p=gostls13.git reflect: uncomment allocation test We no longer force Value content to escape and the compiler's escape analysis can handle it now. Change-Id: I0628f3241e6ef37dce710c2394725e280790479a Reviewed-on: https://go-review.googlesource.com/c/go/+/542975 LUCI-TryBot-Result: Go LUCI Reviewed-by: David Chase --- diff --git a/src/reflect/all_test.go b/src/reflect/all_test.go index bece56f7e7..71969106e4 100644 --- a/src/reflect/all_test.go +++ b/src/reflect/all_test.go @@ -3503,16 +3503,24 @@ func TestAllocations(t *testing.T) { var i any var v Value - // We can uncomment this when compiler escape analysis - // is good enough to see that the integer assigned to i - // does not escape and therefore need not be allocated. - // - // i = 42 + j - // v = ValueOf(i) - // if int(v.Int()) != 42+j { - // panic("wrong int") - // } - + i = 42 + j + v = ValueOf(i) + if int(v.Int()) != 42+j { + panic("wrong int") + } + }) + noAlloc(t, 100, func(j int) { + var i any + var v Value + i = [3]int{j, j, j} + v = ValueOf(i) + if v.Len() != 3 { + panic("wrong length") + } + }) + noAlloc(t, 100, func(j int) { + var i any + var v Value i = func(j int) int { return j } v = ValueOf(i) if v.Interface().(func(int) int)(j) != j {