)]}' { "commit": "ecbcf3a282dfd9e2a7f7c77a7ac8f56998b9511e", "tree": "f5aafa005eb1f378e2a2f503a69c4724624f99a0", "parents": [ "b98090b833e37f88b824288c5d6d9747e1652b52" ], "author": { "name": "Zvonimir Pavlinovic", "email": "zpavlinovic@google.com", "time": "Thu Sep 16 14:46:59 2021 -0700" }, "committer": { "name": "Zvonimir Pavlinovic", "email": "zpavlinovic@google.com", "time": "Wed Sep 22 15:47:37 2021 +0000" }, "message": "go/callgraph/vta: improve support for function value flow\n\nNodes involving function types should be treated the same way as the\nnodes involving interfaces. This was not the case earlier, causing vta\nto miss producing edges for, say, struct fields that are functions. This\nCL addresses that.\n\nChange-Id: I1f6969868babfd0eeec8991f7403192d4ba0afe3\nReviewed-on: https://go-review.googlesource.com/c/tools/+/350732\nRun-TryBot: Zvonimir Pavlinovic \u003czpavlinovic@google.com\u003e\ngopls-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\nTryBot-Result: Go Bot \u003cgobot@golang.org\u003e\nReviewed-by: Tim King \u003ctaking@google.com\u003e\nTrust: Zvonimir Pavlinovic \u003czpavlinovic@google.com\u003e\n", "tree_diff": [ { "type": "modify", "old_id": "6c9e6a576d259b8b49073ad5d68c6e3e7eabc1db", "old_mode": 33188, "old_path": "go/callgraph/vta/graph.go", "new_id": "f846418f1c65ce5bbf0b62a83f9188be7da5f8c9", "new_mode": 33188, "new_path": "go/callgraph/vta/graph.go" }, { "type": "modify", "old_id": "61bb05ad6e663b4129f1fc9ed05ec5c9b9f45201", "old_mode": 33188, "old_path": "go/callgraph/vta/graph_test.go", "new_id": "7ccfe492f84b48ac469cba6bcb777a2d52e0539e", "new_mode": 33188, "new_path": "go/callgraph/vta/graph_test.go" }, { "type": "add", "old_id": "0000000000000000000000000000000000000000", "old_mode": 0, "old_path": "/dev/null", "new_id": "cf4c0f1d74988ab5cd2c32ddc844e34a6c46e065", "new_mode": 33188, "new_path": "go/callgraph/vta/testdata/callgraph_field_funcs.go" }, { "type": "add", "old_id": "0000000000000000000000000000000000000000", "old_mode": 0, "old_path": "/dev/null", "new_id": "b38e0e00d691feca18ea5e0b51d2651dd171fefa", "new_mode": 33188, "new_path": "go/callgraph/vta/testdata/function_alias.go" }, { "type": "modify", "old_id": "cabc93be6101048fbe31e720923a66b7b6d7720d", "old_mode": 33188, "old_path": "go/callgraph/vta/utils.go", "new_id": "9633b8680b90f273624dfc9358f5081cb4666da4", "new_mode": 33188, "new_path": "go/callgraph/vta/utils.go" }, { "type": "modify", "old_id": "b0d2de7836ad10893e08b4cdd243ea0c802c7253", "old_mode": 33188, "old_path": "go/callgraph/vta/vta_test.go", "new_id": "e5a9b41e0eac41b4c945bf4f5b72a8d5e52af605", "new_mode": 33188, "new_path": "go/callgraph/vta/vta_test.go" } ] }