mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/compile: treat empty and absent struct field tags as identical
Fixes #15439. Change-Id: I5a32384c46e20f8db6968e5a9e854c45ab262fe4 Reviewed-on: https://go-review.googlesource.com/22429 Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com> Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
6f3f02f80d
commit
e48a2958d1
11 changed files with 48 additions and 56 deletions
|
|
@ -619,10 +619,6 @@ func cplxsubtype(et EType) EType {
|
|||
return 0
|
||||
}
|
||||
|
||||
func eqnote(a, b *string) bool {
|
||||
return a == b || a != nil && b != nil && *a == *b
|
||||
}
|
||||
|
||||
// Eqtype reports whether t1 and t2 are identical, following the spec rules.
|
||||
//
|
||||
// Any cyclic type must go through a named type, and if one is
|
||||
|
|
@ -670,7 +666,7 @@ func eqtype1(t1, t2 *Type, assumedEqual map[typePair]struct{}) bool {
|
|||
t1, i1 := IterFields(t1)
|
||||
t2, i2 := IterFields(t2)
|
||||
for ; t1 != nil && t2 != nil; t1, t2 = i1.Next(), i2.Next() {
|
||||
if t1.Sym != t2.Sym || t1.Embedded != t2.Embedded || !eqtype1(t1.Type, t2.Type, assumedEqual) || !eqnote(t1.Note, t2.Note) {
|
||||
if t1.Sym != t2.Sym || t1.Embedded != t2.Embedded || !eqtype1(t1.Type, t2.Type, assumedEqual) || t1.Note != t2.Note {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue