package pkg func fn1(x int) bool { println(x) return fn1(x + 1) // want `infinite recursive call` return true } func fn2(x int) bool { println(x) if x > 10 { return true } return fn2(x + 1) } func fn3(x int) bool { println(x) if x > 10 { goto l1 } return fn3(x + 1) l1: println(x) return true } func fn4(p *int, n int) { if n == 0 { return } x := 0 fn4(&x, n-1) if x != n { panic("stack is corrupted") } } func fn5(p *int, n int) { x := 0 fn5(&x, n-1) // want `infinite recursive call` if x != n { panic("stack is corrupted") } } func fn6() { go fn6() } type T struct { n int } func (t T) Fn1() { t.Fn1() // want `infinite recursive call` } func (t T) Fn2() { x := T{} x.Fn2() // want `infinite recursive call` } func (t T) Fn3() { if t.n == 0 { return } t.Fn1() }