mirror of
https://github.com/golang/go
synced 2024-09-05 07:54:46 +00:00
![Dhananjay Nakrani](/assets/img/avatar_default.png)
Previously, on encountering Func.Nname.Type == nil, typecheckfunc() returned without initializing Decldepth for that func. This causes typecheckclosure() to fatal. This change ensures that we initialize Decldepth in all cases. Fixes #17588. Change-Id: I2e3c81ad52e8383395025388989e8dbf03438b68 Reviewed-on: https://go-review.googlesource.com/32415 Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com> Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
21 lines
558 B
Go
21 lines
558 B
Go
// errorcheck
|
|
|
|
// 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"
|
|
|
|
func T(fn F) {
|
|
func() {
|
|
fn(nil) // If Decldepth is not initialized properly, typecheckclosure() Fatals here.
|
|
}()
|
|
}
|