1
0
mirror of https://github.com/golang/go synced 2024-11-22 01:04:40 -07:00

gc: correct type check for x, ok map assignment

Fixes #288.

R=ken2
https://golang.org/cl/157162
This commit is contained in:
Russ Cox 2009-11-24 16:11:48 -08:00
parent 6c827cb412
commit b7c4314ecb
2 changed files with 15 additions and 1 deletions

View File

@ -2018,7 +2018,7 @@ typecheckas2(Node *n)
if(l->type == T) if(l->type == T)
goto out; goto out;
n->op = OAS2MAPW; n->op = OAS2MAPW;
n->rlist->n = typecheckconv(nil, r, l->type->down, 0, nil); n->rlist->n = typecheckconv(nil, r, l->type, 0, nil);
r = n->rlist->next->n; r = n->rlist->next->n;
n->rlist->next->n = typecheckconv(nil, r, types[TBOOL], 0, nil); n->rlist->next->n = typecheckconv(nil, r, types[TBOOL], 0, nil);
goto out; goto out;

14
test/fixedbugs/bug220.go Normal file
View File

@ -0,0 +1,14 @@
// $G $D/$F.go || echo BUG: bug220
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package main
func main() {
m := make(map[int]map[uint]float);
m[0] = make(map[uint]float), false; // 6g used to reject this
m[1] = nil;
}