mirror of
https://github.com/golang/go
synced 2024-11-21 19:04:44 -07:00
cmd/gc: Don't claim type assertion would help when it wont.
Fixes #3465. R=golang-dev, rsc, remyoudompheng, iant CC=golang-dev https://golang.org/cl/6448097
This commit is contained in:
parent
d624f0c922
commit
b04c890a89
@ -1219,7 +1219,7 @@ assignop(Type *src, Type *dst, char **why)
|
||||
return 0;
|
||||
}
|
||||
if(src->etype == TINTER && dst->etype != TBLANK) {
|
||||
if(why != nil)
|
||||
if(why != nil && implements(dst, src, &missing, &have, &ptr))
|
||||
*why = ": need type assertion";
|
||||
return 0;
|
||||
}
|
||||
|
@ -40,7 +40,7 @@ func main() {
|
||||
// because i has an extra method
|
||||
// that t does not, so i cannot contain a t.
|
||||
i = t // ERROR "incompatible|missing M method"
|
||||
t = i // ERROR "incompatible|need type assertion"
|
||||
t = i // ERROR "incompatible|assignment$"
|
||||
|
||||
i = i2 // ok
|
||||
i2 = i // ERROR "incompatible|missing N method"
|
||||
|
Loading…
Reference in New Issue
Block a user