# Regression test for issue 65915: the enumeration of source-level
# functions used the flawed ssautil.AllFunctions, causing it to
# miss some unexported ones.

 deadcode -filter= example.com

 want "unreachable func: example.UnUsed"
 want "unreachable func: example.unUsed"
 want "unreachable func: PublicExample.UnUsed"
 want "unreachable func: PublicExample.unUsed"

-- go.mod --
module example.com
go 1.18

-- main.go --
package main

type example struct{}

func (e example) UnUsed() {}

func (e example) Used() {}

func (e example) unUsed() {}

func (e example) used() {}

type PublicExample struct{}

func (p PublicExample) UnUsed() {}

func (p PublicExample) Used() {}

func (p PublicExample) unUsed() {}

func (p PublicExample) used() {}

func main() {
	example{}.Used()
	example{}.used()
	PublicExample{}.Used()
	PublicExample{}.used()
}
