--- /dev/null
+-------- @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"
+ }
+ ]
+}