This test verifies the behavior of hovering over a promoted field through an
alias to a pointer to a struct type.

-- go.mod --
module example.com

-- main.go --
package main

type U struct {
	X int
}

type T struct {
	U
}

type A = *T

type S struct {
	A
}

type A1 = U
type S1 struct {
	A1
}

type A2 = U
type S2 struct {
	*A2
}

type A3_1 = *T
type A3_2 = A3_1
type S3 struct {
	A3_2
}

func main() {
	var s S
	_ = s.X //@hover("X", "X", X)

	var s1 S1
	_ = s1.X //@hover("X", "X", X1)

	var s2 S2
	_ = s2.X //@hover("X", "X", X2)

	var s3 S3
	_ = s3.X //@hover("X", "X", X3)
}

-- @X --
```go
field X int // through A, U
```

---

[`(main.U).X` on pkg.go.dev](https://pkg.go.dev/example.com#U.X)
-- @X1 --
```go
field X int // through A1
```

---

[`(main.U).X` on pkg.go.dev](https://pkg.go.dev/example.com#U.X)
-- @X2 --
```go
field X int // through *A2
```

---

[`(main.U).X` on pkg.go.dev](https://pkg.go.dev/example.com#U.X)
-- @X3 --
```go
field X int // through A3_2, U
```

---

[`(main.U).X` on pkg.go.dev](https://pkg.go.dev/example.com#U.X)
