+++ /dev/null
-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()
-}