aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/link/internal/ld/testdata/deadcode/ifacemethod6.go
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2024-03-20 12:54:39 -0700
committerColin Cross <ccross@android.com>2024-03-20 14:11:54 -0700
commitfbe2133b4d3417adc93daa3819fccf52d2bb66ea (patch)
tree489499c233d3e979128afcc077ea1c6c01725ddf /src/cmd/link/internal/ld/testdata/deadcode/ifacemethod6.go
parent68a2d6d0813d288a1149f79a7223284fa2f5559f (diff)
parentdb6097f8cbaceaed02051850d2411c88b763a0c3 (diff)
downloadgo-fbe2133b4d3417adc93daa3819fccf52d2bb66ea.tar.gz
Merge tag 'upstream-go1.22.1'HEADmastermain
Bug: 330574836 Test: builds Change-Id: Icaf805d49ad96dd3f2960c5f92b4eeb7c131291c
Diffstat (limited to 'src/cmd/link/internal/ld/testdata/deadcode/ifacemethod6.go')
-rw-r--r--src/cmd/link/internal/ld/testdata/deadcode/ifacemethod6.go31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/cmd/link/internal/ld/testdata/deadcode/ifacemethod6.go b/src/cmd/link/internal/ld/testdata/deadcode/ifacemethod6.go
new file mode 100644
index 0000000000..7eb9419ef1
--- /dev/null
+++ b/src/cmd/link/internal/ld/testdata/deadcode/ifacemethod6.go
@@ -0,0 +1,31 @@
+// Copyright 2023 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// This test only uses MethodByName() with constant names
+// of methods to look up. These methods need to be kept,
+// but other methods must be eliminated.
+
+package main
+
+import "reflect"
+
+type S int
+
+func (s S) M() { println("S.M") }
+
+func (s S) N() { println("S.N") }
+
+type T float64
+
+func (t T) F(s S) {}
+
+func main() {
+ var t T
+ meth, _ := reflect.TypeOf(t).MethodByName("F")
+ ft := meth.Type
+ at := ft.In(1)
+ v := reflect.New(at).Elem()
+ methV := v.MethodByName("M")
+ methV.Call([]reflect.Value{v})
+}