| # Test of -whylive with reflective call |
| # (regression test for golang/go#67915). |
| |
| # The live function is reached via reflection: |
| |
| deadcode example.com |
| want "unreachable func: dead" |
| !want "unreachable func: live" |
| |
| # Reflective calls have Edge.Site=nil, which formerly led to a crash |
| # when -whylive would compute its position. Now it has NoPos. |
| |
| deadcode -whylive=example.com.live example.com |
| want " example.com.main" |
| want " static@L0006 --> reflect.Value.Call" |
| want "dynamic@L0000 --> example.com.live" |
| |
| -- go.mod -- |
| module example.com |
| go 1.18 |
| |
| -- main.go -- |
| package main |
| |
| import "reflect" |
| |
| func main() { |
| reflect.ValueOf(live).Call(nil) |
| } |
| |
| func live() { |
| println("hello") |
| } |
| |
| func dead() { |
| println("goodbye") |
| } |