From ca38a24d87d119b70ad2d531ddfc12add31c39b7 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Tue, 11 Nov 2008 15:55:32 -0800 Subject: don't try interface/structure conversion until last resort, because it assumes every call is a real use of the conversion. R=ken OCL=19026 CL=19026 --- src/cmd/gc/walk.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/cmd/gc/walk.c b/src/cmd/gc/walk.c index 13ad69a65..e68833c42 100644 --- a/src/cmd/gc/walk.c +++ b/src/cmd/gc/walk.c @@ -597,13 +597,6 @@ loop: if(isptrarray(t) && isptrdarray(l->type)) goto ret; - // interface and structure - et = isandss(n->type, l); - if(et != Inone) { - indir(n, ifaceop(n->type, l, et)); - goto ret; - } - // structure literal if(t->etype == TSTRUCT) { indir(n, structlit(n)); @@ -624,6 +617,13 @@ loop: goto ret; } + // interface and structure + et = isandss(n->type, l); + if(et != Inone) { + indir(n, ifaceop(n->type, l, et)); + goto ret; + } + if(l->type != T) yyerror("cannot convert %T to %T", l->type, t); goto ret; -- cgit v1.2.3