mirror of
https://github.com/golang/go
synced 2024-11-26 17:36:56 -07:00
70b277cf2e
CheckReturn uses fn.Type() unconditionally, so for invalid function, fn.Type() will be nil, causes the compiler crashes. Updates #43311 Change-Id: I4420dd296c72ea83986b38fbf2c7f51fa59757c8 Reviewed-on: https://go-review.googlesource.com/c/go/+/298709 Trust: Cuong Manh Le <cuong.manhle.vn@gmail.com> Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
21 lines
569 B
Go
21 lines
569 B
Go
// errorcheck -d=panic
|
|
|
|
// Copyright 2016 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// Issue 17588: internal compiler error in typecheckclosure()
|
|
// because in case of Func.Nname.Type == nil, Decldepth
|
|
// is not initialized in typecheckfunc(). This test
|
|
// produces that case.
|
|
|
|
package p
|
|
|
|
type F func(b T) // ERROR "T .*is not a type|expected type"
|
|
|
|
func T(fn F) {
|
|
func() {
|
|
fn(nil) // If Decldepth is not initialized properly, typecheckclosure() Fatals here.
|
|
}()
|
|
}
|