File: deep2.txt

package info (click to toggle)
golang-golang-x-tools 1%3A0.25.0%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 22,724 kB
  • sloc: javascript: 2,027; asm: 1,645; sh: 166; yacc: 155; makefile: 49; ansic: 8
file content (65 lines) | stat: -rw-r--r-- 1,299 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
This test exercises deep completion.

It was originally bundled with deep.go, but is split into a separate test as
the new marker tests do not permit mutating server options for individual
marks.

-- flags --
-ignore_extra_diags

-- go.mod --
module golang.org/lsptests

go 1.18

-- deep/deep2.go --
package deep

type foo struct {
	b bar
}

func (f foo) bar() bar {
	return f.b
}

func (f foo) barPtr() *bar {
	return &f.b
}

type bar struct{}

func (b bar) valueReceiver() int {
	return 0
}

func (b *bar) ptrReceiver() int {
	return 0
}

func _() {
	var (
		i int
		f foo
	)

	f.bar().valueReceiver    //@item(deepBarValue, "f.bar().valueReceiver", "func() int", "method")
	f.barPtr().ptrReceiver   //@item(deepBarPtrPtr, "f.barPtr().ptrReceiver", "func() int", "method")
	f.barPtr().valueReceiver //@item(deepBarPtrValue, "f.barPtr().valueReceiver", "func() int", "method")

	i = fbar //@complete(" //", deepBarValue, deepBarPtrPtr, deepBarPtrValue)
}

func (b baz) Thing() struct{ val int } {
	return b.thing
}

type baz struct {
	thing struct{ val int }
}

func (b baz) _() {
	b.Thing().val    //@item(deepBazMethVal, "b.Thing().val", "int", "field")
	b.thing.val      //@item(deepBazFieldVal, "b.thing.val", "int", "field")
	var _ int = bval //@rank(" //", deepBazFieldVal, deepBazMethVal)
}