  	}
  
  	if x.mode == constant && y.mode == constant {
-@@ -898,7 +914,7 @@
+@@ -908,7 +924,7 @@
  		typ = Typ[Invalid]
  		record = false // nothing to do
  	case novalue:

 	for i, f := range list {
 		key := f.Id()
 		// if f is not in the set, add it
diff -r 9e246fa49449 go/types/typemap/typemap.go
--- a/go/types/typemap/typemap.go	Fri Oct 18 10:42:41 2013 +0900
+++ b/go/types/typemap/typemap.go	Sun Oct 20 15:23:54 2013 +0200
@@ -130,10 +130,7 @@
 
 // Len returns the number of map entries.

 }
 
 func (check *checker) comparison(x, y *operand, op token.Token) {
@@ -763,9 +776,12 @@
 	}
 
 	if (op == token.QUO || op == token.REM) && y.mode == constant && exact.Sign(y.val) == 0 {
