Do not compare nil and true.
Fixes #7996.
LGTM=r
R=golang-codereviews, r
CC=golang-codereviews
https://golang.org/cl/
91470043
for(a=hash[h]; a!=N; a=a->ntest) {
cmp.op = OEQ;
cmp.left = n;
+ b = 0;
if(a->op == OCONVIFACE && orign->op == OCONVIFACE) {
- if(a->left->type == n->type) {
+ if(eqtype(a->left->type, n->type)) {
cmp.right = a->left;
evconst(&cmp);
b = cmp.val.u.bval;
}
- else {
- b = 0;
- }
- }
- else {
+ } else if(eqtype(a->type, n->type)) {
cmp.right = a;
evconst(&cmp);
b = cmp.val.u.bval;
}
if(b) {
- // too lazy to print the literal
yyerror("duplicate key %N in map literal", n);
return;
}
--- /dev/null
+// compile
+
+// Copyright 2014 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.
+
+// /tmp/x.go:5: illegal constant expression: bool == interface {}
+
+package p
+
+var m = map[interface{}]struct{}{
+ nil: {},
+ true: {},
+}