mirror of
https://github.com/golang/go
synced 2024-11-11 19:51:37 -07:00
[dev.typeparams] cmd/compile: allow nil Syms in Sym.Less
Allows sorting interfaces that contain embedded anonymous types. Fixes #46556. Change-Id: If19afa1d62432323b2e98957087867afbf3f9097 Reviewed-on: https://go-review.googlesource.com/c/go/+/324812 Trust: Matthew Dempsky <mdempsky@google.com> Trust: Dan Scales <danscales@google.com> Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Dan Scales <danscales@google.com>
This commit is contained in:
parent
a2d6a2caeb
commit
026480d06b
@ -110,6 +110,14 @@ func (a *Sym) Less(b *Sym) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// Nil before non-nil.
|
||||
if a == nil {
|
||||
return true
|
||||
}
|
||||
if b == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
// Exported symbols before non-exported.
|
||||
ea := IsExported(a.Name)
|
||||
eb := IsExported(b.Name)
|
||||
|
16
test/fixedbugs/issue46556.go
Normal file
16
test/fixedbugs/issue46556.go
Normal file
@ -0,0 +1,16 @@
|
||||
// compile
|
||||
|
||||
// Copyright 2021 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.
|
||||
|
||||
package p
|
||||
|
||||
type A = interface{}
|
||||
type B interface{}
|
||||
|
||||
// Test that embedding both anonymous and defined types is supported.
|
||||
type C interface {
|
||||
A
|
||||
B
|
||||
}
|
Loading…
Reference in New Issue
Block a user