gc: bug270

Fixes #746.

R=ken2
CC=golang-dev
https://golang.org/cl/1040042
This commit is contained in:
Russ Cox 2010-04-30 13:04:16 -07:00
parent 74a23646bc
commit 560283c880
2 changed files with 22 additions and 4 deletions

View File

@ -803,11 +803,8 @@ walkexpr(Node **np, NodeList **init)
switch(et) { switch(et) {
case I2Isame: case I2Isame:
case E2Esame: case E2Esame:
n->rlist = list(list1(r->left), nodbool(1));
typechecklist(n->rlist, Erv);
goto as2;
case I2E: case I2E:
n->list = list(list1(n->right), nodbool(1)); n->rlist = list(list1(r->left), nodbool(1));
typechecklist(n->rlist, Erv); typechecklist(n->rlist, Erv);
goto as2; goto as2;
case I2T: case I2T:

21
test/fixedbugs/bug270.go Normal file
View File

@ -0,0 +1,21 @@
// $G $D/$F.go
// Copyright 2010 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.
// http://code.google.com/p/go/issues/detail?id=746
package main
type I interface { F() }
type T struct{}
func (T) F() {}
func main() {
switch I(T{}).(type) {
case interface{}:
}
}