Fixes golang/go#19656
Change-Id: Ied20d3f25b6e147cc693a1dd1aeb9480adc6687e
Reviewed-on: https://go-review.googlesource.com/38405
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
var sig *types.Signature
switch node := node.(type) {
case *ast.FuncDecl:
- sig, _ = f.pkg.defs[node.Name].Type().(*types.Signature)
+ obj := f.pkg.defs[node.Name]
+ if obj == nil {
+ return // type error (e.g. duplicate function declaration)
+ }
+ sig, _ = obj.Type().(*types.Signature)
g = cfg.New(node.Body, mayReturn)
case *ast.FuncLit:
sig, _ = f.pkg.types[node.Type].Type.(*types.Signature)