Commit 95a895df authored by Alan Donovan's avatar Alan Donovan

go/types: make Identical(nil, T) == Identical(T, nil)

Fixes #15173

Change-Id: I353756f7bc36db0d2b24d40c80771481b7b18f6b
Reviewed-on: https://go-review.googlesource.com/21585Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
parent 9cc9e95b
...@@ -1042,3 +1042,20 @@ func f() { ...@@ -1042,3 +1042,20 @@ func f() {
} }
} }
} }
func TestIdentical_issue15173(t *testing.T) {
// Identical should allow nil arguments and be symmetric.
for _, test := range []struct {
x, y Type
want bool
}{
{Typ[Int], Typ[Int], true},
{Typ[Int], nil, false},
{nil, Typ[Int], false},
{nil, nil, true},
} {
if got := Identical(test.x, test.y); got != test.want {
t.Errorf("Identical(%v, %v) = %t", test.x, test.y, got)
}
}
}
...@@ -277,6 +277,8 @@ func identical(x, y Type, p *ifacePair) bool { ...@@ -277,6 +277,8 @@ func identical(x, y Type, p *ifacePair) bool {
return x.obj == y.obj return x.obj == y.obj
} }
case nil:
default: default:
unreachable() unreachable()
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment