| Test that inlay hints reveal the sequence of names implied by a field |
| name F in a struct literal T{F: v}, which in go1.27 may denote an |
| embedded field; see go.dev/issue/78553. |
| |
| -- flags -- |
| -ignore_extra_diags |
| -min_go=go1.27 |
| |
| -- settings.json -- |
| {"hints": {"compositeLiteralFields": true}} |
| |
| -- structlit.go -- |
| package p //@ inlayhints(structlit) |
| |
| type A struct { *B } |
| type B struct { C } |
| type C struct { F int } |
| |
| var _ = A{B: &B{C: C{F: 0}}} |
| var _ = A{B: &B{C: C{0}}} |
| var _ = A{&B{C: C{0}}} |
| var _ = A{&B{C{0}}} |
| var _ = A{C: C{F: 0}} |
| var _ = A{C: C{0}} |
| var _ = A{C{F: 0}} |
| var _ = A{C{F: 0}} |
| var _ = A{C{0}} |
| var _ = A{F: 0} |
| var _ = A{0} |
| var _ = A{} |
| |
| -- @structlit -- |
| package p //@ inlayhints(structlit) |
| |
| type A struct { *B } |
| type B struct { C } |
| type C struct { F int } |
| |
| var _ = A{B: &B{C: C{F: 0}}} |
| var _ = A{B: &B{C: C{<F: >0}}} |
| var _ = A{<B: >&B{C: C{<F: >0}}} |
| var _ = A{<B: >&B{<C: >C{<F: >0}}} |
| var _ = A{<B.>C: C{F: 0}} |
| var _ = A{<B.>C: C{<F: >0}} |
| var _ = A{<B: >C{F: 0}} |
| var _ = A{<B: >C{F: 0}} |
| var _ = A{<B: >C{<F: >0}} |
| var _ = A{<B.C.>F: 0} |
| var _ = A{<B: >0} |
| var _ = A{} |
| |