From 83a798513cf487f6c5e0af919b9cf03246ded0ca Mon Sep 17 00:00:00 2001 From: Ken Thompson Date: Wed, 5 Nov 2008 15:33:01 -0800 Subject: [PATCH] more on t,ok = I.(T) R=r OCL=18599 CL=18599 --- src/cmd/gc/walk.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/cmd/gc/walk.c b/src/cmd/gc/walk.c index f382390627..cdc675a915 100644 --- a/src/cmd/gc/walk.c +++ b/src/cmd/gc/walk.c @@ -469,6 +469,7 @@ loop: case OCONV: if(cl == 2 && cr == 1) { // a,b = i.(T) + walktype(r->left, Erv); if(r->left == N) break; et = isandss(r->type, r->left); @@ -2964,6 +2965,20 @@ multi: n = list(n, a); break; + case OCONV: + // a,b := i.(T) + if(cl != 2) + goto badt; + walktype(nr->left, Erv); + if(!isinter(nr->left->type)) + goto badt; + // a,b = iface + a = old2new(nl->left, nr->type); + n = a; + a = old2new(nl->right, types[TBOOL]); + n = list(n, a); + break; + case ORECV: if(cl != 2) goto badt; @@ -2975,6 +2990,7 @@ multi: n = a; a = old2new(nl->right, types[TBOOL]); n = list(n, a); + break; } n = rev(n); return n; -- 2.50.0