1package fn
2
3import "time"
4
5func fn1() {
6	t := time.NewTimer(time.Second)
7	t.Reset(time.Second)
8}
9
10func fn2() {
11	t := time.NewTimer(time.Second)
12	_ = t.Reset(time.Second)
13}
14
15func fn3() {
16	t := time.NewTimer(time.Second)
17	println(t.Reset(time.Second))
18}
19
20func fn4() {
21	t := time.NewTimer(time.Second)
22	if t.Reset(time.Second) {
23		println("x")
24	}
25}
26
27func fn5() {
28	t := time.NewTimer(time.Second)
29	if t.Reset(time.Second) { // want `it is not possible to use Reset's return value correctly`
30		<-t.C
31	}
32}
33
34func fn6(x bool) {
35	// Not matched because we don't support complex boolean
36	// expressions
37	t := time.NewTimer(time.Second)
38	if t.Reset(time.Second) || x {
39		<-t.C
40	}
41}
42
43func fn7(x bool) {
44	// Not matched because we don't analyze that deeply
45	t := time.NewTimer(time.Second)
46	y := t.Reset(2 * time.Second)
47	z := x || y
48	println(z)
49	if z {
50		<-t.C
51	}
52}
53
54func fn8() {
55	t := time.NewTimer(time.Second)
56	abc := t.Reset(time.Second) // want `it is not possible to use Reset's return value correctly`
57	if abc {
58		<-t.C
59	}
60}
61
62func fn9() {
63	t := time.NewTimer(time.Second)
64	if t.Reset(time.Second) {
65		println("x")
66	}
67	<-t.C
68}
69
70func fn10() {
71	t := time.NewTimer(time.Second)
72	if !t.Reset(time.Second) { // want `it is not possible to use Reset's return value correctly`
73		<-t.C
74	}
75}
76
77func fn11(ch chan int) {
78	t := time.NewTimer(time.Second)
79	if !t.Reset(time.Second) {
80		<-ch
81	}
82}
83