Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / golang.org / x / tools@v0.0.0-20201028153306-37f0764111ff / cmd / guru / testdata / src / reflection / main.go
1 package main
2
3 // This is a test of 'pointsto', but we split it into a separate file
4 // so that pointsto.go doesn't have to import "reflect" each time.
5
6 import "reflect"
7
8 var a int
9 var b bool
10
11 func main() {
12         m := make(map[*int]*bool)
13         m[&a] = &b
14
15         mrv := reflect.ValueOf(m)
16         if a > 0 {
17                 mrv = reflect.ValueOf(&b)
18         }
19         if a > 0 {
20                 mrv = reflect.ValueOf(&a)
21         }
22
23         _ = mrv                  // @pointsto mrv "mrv"
24         p1 := mrv.Interface()    // @pointsto p1 "p1"
25         p2 := mrv.MapKeys()      // @pointsto p2 "p2"
26         p3 := p2[0]              // @pointsto p3 "p3"
27         p4 := reflect.TypeOf(p1) // @pointsto p4 "p4"
28
29         _, _, _, _ = p1, p2, p3, p4
30 }