1
0
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:
Daniel Morsing 2012-08-15 16:53:06 -07:00 committed by Ian Lance Taylor
parent d624f0c922
commit b04c890a89
2 changed files with 2 additions and 2 deletions

View File

@ -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;
}

View File

@ -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"