LEFT | RIGHT |
(no file at all) | |
1 // Copyright 2009 The Go Authors. All rights reserved. | 1 // Copyright 2009 The Go Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style | 2 // Use of this source code is governed by a BSD-style |
3 // license that can be found in the LICENSE file. | 3 // license that can be found in the LICENSE file. |
4 | 4 |
5 #include <u.h> | 5 #include <u.h> |
6 #include <libc.h> | 6 #include <libc.h> |
7 #include "go.h" | 7 #include "go.h" |
8 | 8 |
9 static Node* walkprint(Node*, NodeList**, int); | 9 static Node* walkprint(Node*, NodeList**, int); |
10 static Node* mapfn(char*, Type*); | 10 static Node* mapfn(char*, Type*); |
(...skipping 1173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1184 r = nod(ONOT, r, N); | 1184 r = nod(ONOT, r, N); |
1185 ················ | 1185 ················ |
1186 // check itable/type before full compare. | 1186 // check itable/type before full compare. |
1187 if(n->etype == OEQ) | 1187 if(n->etype == OEQ) |
1188 r = nod(OANDAND, nod(OEQ, nod(OITAB, n->left, N), nod(OI
TAB, n->right, N)), r); | 1188 r = nod(OANDAND, nod(OEQ, nod(OITAB, n->left, N), nod(OI
TAB, n->right, N)), r); |
1189 else | 1189 else |
1190 r = nod(OOROR, nod(ONE, nod(OITAB, n->left, N), nod(OITA
B, n->right, N)), r); | 1190 r = nod(OOROR, nod(ONE, nod(OITAB, n->left, N), nod(OITA
B, n->right, N)), r); |
1191 typecheck(&r, Erv); | 1191 typecheck(&r, Erv); |
1192 walkexpr(&r, nil); | 1192 walkexpr(&r, nil); |
1193 | 1193 |
1194 n = r; | |
1195 goto ret; | |
1196 | |
1197 ········ | |
1198 n = r; | 1194 n = r; |
1199 goto ret; | 1195 goto ret; |
1200 | 1196 |
1201 case OARRAYLIT: | 1197 case OARRAYLIT: |
1202 case OMAPLIT: | 1198 case OMAPLIT: |
1203 case OSTRUCTLIT: | 1199 case OSTRUCTLIT: |
1204 case OPTRLIT: | 1200 case OPTRLIT: |
1205 var = temp(n->type); | 1201 var = temp(n->type); |
1206 anylit(0, n, var, init); | 1202 anylit(0, n, var, init); |
1207 n = var; | 1203 n = var; |
(...skipping 1377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2585 argtype(fn, n->left->type); | 2581 argtype(fn, n->left->type); |
2586 argtype(fn, n->left->type); | 2582 argtype(fn, n->left->type); |
2587 r = mkcall1(fn, n->type, init, typename(n->left->type), l, r); | 2583 r = mkcall1(fn, n->type, init, typename(n->left->type), l, r); |
2588 if(n->op == ONE) { | 2584 if(n->op == ONE) { |
2589 r = nod(ONOT, r, N); | 2585 r = nod(ONOT, r, N); |
2590 typecheck(&r, Erv); | 2586 typecheck(&r, Erv); |
2591 } | 2587 } |
2592 *np = r; | 2588 *np = r; |
2593 return; | 2589 return; |
2594 } | 2590 } |
LEFT | RIGHT |