-------- @implements F.f -------- { "type": { "name": "implements-methods-json.F", "pos": "testdata/src/implements-methods-json/main.go:12:6", "kind": "interface" }, "to": [ { "name": "*implements-methods-json.C", "pos": "testdata/src/implements-methods-json/main.go:21:6", "kind": "pointer" }, { "name": "implements-methods-json.D", "pos": "testdata/src/implements-methods-json/main.go:22:6", "kind": "struct" }, { "name": "implements-methods-json.FG", "pos": "testdata/src/implements-methods-json/main.go:16:6", "kind": "interface" } ], "method": { "name": "func (F).f()", "pos": "testdata/src/implements-methods-json/main.go:13:2" }, "to_method": [ { "name": "method (*C) f()", "pos": "testdata/src/implements-methods-json/main.go:24:13" }, { "name": "method (D) f()", "pos": "testdata/src/implements-methods-json/main.go:25:12" }, { "name": "method (FG) f()", "pos": "testdata/src/implements-methods-json/main.go:17:2" } ] } -------- @implements FG.f -------- { "type": { "name": "implements-methods-json.FG", "pos": "testdata/src/implements-methods-json/main.go:16:6", "kind": "interface" }, "to": [ { "name": "*implements-methods-json.D", "pos": "testdata/src/implements-methods-json/main.go:22:6", "kind": "pointer" } ], "from": [ { "name": "implements-methods-json.F", "pos": "testdata/src/implements-methods-json/main.go:12:6", "kind": "interface" } ], "method": { "name": "func (FG).f()", "pos": "testdata/src/implements-methods-json/main.go:17:2" }, "to_method": [ { "name": "method (*D) f()", "pos": "testdata/src/implements-methods-json/main.go:25:12" } ], "from_method": [ { "name": "method (F) f()", "pos": "testdata/src/implements-methods-json/main.go:13:2" } ] } -------- @implements FG.g -------- { "type": { "name": "implements-methods-json.FG", "pos": "testdata/src/implements-methods-json/main.go:16:6", "kind": "interface" }, "to": [ { "name": "*implements-methods-json.D", "pos": "testdata/src/implements-methods-json/main.go:22:6", "kind": "pointer" } ], "from": [ { "name": "implements-methods-json.F", "pos": "testdata/src/implements-methods-json/main.go:12:6", "kind": "interface" } ], "method": { "name": "func (FG).g() []int", "pos": "testdata/src/implements-methods-json/main.go:18:2" }, "to_method": [ { "name": "method (*D) g() []int", "pos": "testdata/src/implements-methods-json/main.go:27:13" } ], "from_method": [ { "name": "", "pos": "" } ] } -------- @implements *C.f -------- { "type": { "name": "*implements-methods-json.C", "pos": "testdata/src/implements-methods-json/main.go:21:6", "kind": "pointer" }, "from": [ { "name": "implements-methods-json.F", "pos": "testdata/src/implements-methods-json/main.go:12:6", "kind": "interface" } ], "method": { "name": "func (*C).f()", "pos": "testdata/src/implements-methods-json/main.go:24:13" }, "from_method": [ { "name": "method (F) f()", "pos": "testdata/src/implements-methods-json/main.go:13:2" } ] } -------- @implements D.f -------- { "type": { "name": "implements-methods-json.D", "pos": "testdata/src/implements-methods-json/main.go:22:6", "kind": "struct" }, "from": [ { "name": "implements-methods-json.F", "pos": "testdata/src/implements-methods-json/main.go:12:6", "kind": "interface" } ], "fromptr": [ { "name": "implements-methods-json.FG", "pos": "testdata/src/implements-methods-json/main.go:16:6", "kind": "interface" } ], "method": { "name": "func (D).f()", "pos": "testdata/src/implements-methods-json/main.go:25:12" }, "from_method": [ { "name": "method (F) f()", "pos": "testdata/src/implements-methods-json/main.go:13:2" } ], "fromptr_method": [ { "name": "method (FG) f()", "pos": "testdata/src/implements-methods-json/main.go:17:2" } ] } -------- @implements *D.g -------- { "type": { "name": "*implements-methods-json.D", "pos": "testdata/src/implements-methods-json/main.go:22:6", "kind": "pointer" }, "from": [ { "name": "implements-methods-json.F", "pos": "testdata/src/implements-methods-json/main.go:12:6", "kind": "interface" }, { "name": "implements-methods-json.FG", "pos": "testdata/src/implements-methods-json/main.go:16:6", "kind": "interface" } ], "method": { "name": "func (*D).g() []int", "pos": "testdata/src/implements-methods-json/main.go:27:13" }, "from_method": [ { "name": "", "pos": "" }, { "name": "method (FG) g() []int", "pos": "testdata/src/implements-methods-json/main.go:18:2" } ] } -------- @implements Len -------- { "type": { "name": "implements-methods-json.sorter", "pos": "testdata/src/implements-methods-json/main.go:29:6", "kind": "slice" }, "from": [ { "name": "lib.Sorter", "pos": "testdata/src/lib/lib.go:16:6", "kind": "interface" } ], "method": { "name": "func (sorter).Len() int", "pos": "testdata/src/implements-methods-json/main.go:31:15" }, "from_method": [ { "name": "method (lib.Sorter) Len() int", "pos": "testdata/src/lib/lib.go:17:2" } ] } -------- @implements I.Method -------- { "type": { "name": "implements-methods-json.I", "pos": "testdata/src/implements-methods-json/main.go:35:6", "kind": "interface" }, "to": [ { "name": "lib.Type", "pos": "testdata/src/lib/lib.go:3:6", "kind": "basic" } ], "method": { "name": "func (I).Method(*int) *int", "pos": "testdata/src/implements-methods-json/main.go:36:2" }, "to_method": [ { "name": "method (lib.Type) Method(x *int) *int", "pos": "testdata/src/lib/lib.go:5:13" } ] }