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)
goto out;
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;
n->rlist->next->n = typecheckconv(nil, r, types[TBOOL], 0, nil);
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;
}