-- arrD-hoverdef --
```go
field d int
```

d field
-- arrE-hoverdef --
```go
field e struct{f int}
```

e nested struct
-- arrF-hoverdef --
```go
field f int
```

f field of nested struct
-- complexH-hoverdef --
```go
field h int
```

h field
-- complexI-hoverdef --
```go
field i struct{j int}
```

i nested struct
-- complexJ-hoverdef --
```go
field j int
```

j field of nested struct
-- mapStructKeyX-hoverdef --
```go
field x []string
```

X key field
-- mapStructKeyY-hoverdef --
```go
field y string
```
-- mapStructValueX-hoverdef --
```go
field x string
```

X value field
-- nestedMap-hoverdef --
```go
field m map[string]float64
```

nested map
-- nestedNumber-hoverdef --
```go
field number int64
```

nested number
-- nestedString-hoverdef --
```go
field str string
```

nested string
-- openMethod-hoverdef --
```go
func (interface).open() error
```

open method comment
-- returnX-hoverdef --
```go
field x int
```

X coord
-- returnY-hoverdef --
```go
field y int
```

Y coord
-- structA-hoverdef --
```go
field a int
```

a field
-- structB-hoverdef --
```go
field b struct{c int}
```

b nested struct
-- structC-hoverdef --
```go
field c int
```

c field of nested struct
-- testDescription-hoverdef --
```go
field desc string
```

test description
-- testInput-hoverdef --
```go
field in map[string][]struct{key string; value interface{}}
```

test input
-- testInputKey-hoverdef --
```go
field key string
```

test key
-- testInputValue-hoverdef --
```go
field value interface{}
```

test value
-- testResultValue-hoverdef --
```go
field value int
```

expected test value
