mirror of
https://github.com/golang/go
synced 2024-09-15 22:20:06 +00:00
ed9e109dc9
- set correct position for closure capture variable in (*irgen).use() (issue20250.go) Also, evaluate rhs, lhs in that order in assignment statements to match noder1 (affects ordering of closure variables). - make sure to set Assign flag properly in (*irgen).forStmt() for range variables which are map accesses (issue9691.go) - make sure CheckSize() is call on the base type for top-level types converted by (*irgen).typ() that are pointer types (issue20174.go and issue37837.go) - deal with parentheses properly in validation function (*irgen).validate() (issue17270.go) - avoid HasNil call on type TTYPEPARAM - types2 typechecker will have already checked validity of the typeparam having nil value (new test issue39755.go) Change-Id: Ie68004d964698aea047e19e7dcd79b297e9d47ca Reviewed-on: https://go-review.googlesource.com/c/go/+/334733 Trust: Dan Scales <danscales@google.com> Run-TryBot: Dan Scales <danscales@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
28 lines
601 B
Go
28 lines
601 B
Go
// compile -G=3
|
|
|
|
// Copyright 2020 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.
|
|
|
|
// copied from cmd/compile/internal/types2/testdata/fixedbugs/issue39755.go
|
|
|
|
package p
|
|
|
|
func _[T interface{~map[string]int}](x T) {
|
|
_ = x == nil
|
|
}
|
|
|
|
// simplified test case from issue
|
|
|
|
type PathParamsConstraint interface {
|
|
~map[string]string | ~[]struct{key, value string}
|
|
}
|
|
|
|
type PathParams[T PathParamsConstraint] struct {
|
|
t T
|
|
}
|
|
|
|
func (pp *PathParams[T]) IsNil() bool {
|
|
return pp.t == nil // this must succeed
|
|
}
|