Fixes #471.
R=ken2
CC=golang-dev
https://golang.org/cl/181184
return;
bad:
+ if(!n->diag) {
+ yyerror("cannot convert %#N to type %T", n, t);
+ n->diag = 1;
+ }
if(isideal(n->type)) {
defaultlit(&n, T);
*np = n;
goto ret;
}
t = n->type;
- if(t != T)
+ if(t != T) {
convlit(&e, t);
+ if(!isint[t->etype] && !isfloat[t->etype] && t->etype != TSTRING)
+ yyerror("invalid constant type %T", t);
+ }
n->val = e->val;
n->type = e->type;
break;
+++ /dev/null
-// errchk $G -e $D/$F.go
-
-// 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.
-
-// Test case for issue 471. This file shouldn't compile.
-
-package main
-
-const a *int = 1 // ERROR "wrong|incompatible"
-const b [2]int = 2 // ERROR "wrong|incompatible"
-const c map[int]int = 3 // ERROR "wrong|incompatible"
-const d chan int = 4 // ERROR "wrong|incompatible"
-const e func() = 5 // ERROR "wrong|incompatible"
-const f struct{} = 6 // ERROR "wrong|incompatible"
-const g interface{} = 7 // ERROR "wrong|incompatible"
-
-func main() { println(a, b, c, d, e, f, g) }
--- /dev/null
+// errchk $G -e $D/$F.go
+
+// 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.
+
+// Test case for issue 471. This file shouldn't compile.
+
+package main
+
+const a *int = 1 // ERROR "convert|wrong|incompatible"
+const b [2]int = 2 // ERROR "convert|wrong|incompatible"
+const c map[int]int = 3 // ERROR "convert|wrong|incompatible"
+const d chan int = 4 // ERROR "convert|wrong|incompatible"
+const e func() = 5 // ERROR "convert|wrong|incompatible"
+const f struct{} = 6 // ERROR "convert|wrong|incompatible"
+const g interface{} = 7 // ERROR "constant|wrong|incompatible"
+
+func main() { println(a, b, c, d, e, f, g) }
panic PC=xxx
== bugs/
-
-=========== bugs/bug219.go
-bugs/bug219.go:16: syntax error near if
-BUG: bug219
-
-=========== bugs/bug238.go
-BUG: errchk: command succeeded unexpectedly
-
-=========== bugs/bug239.go
-bugs/bug239.go:11: imported and not used: unsafe
-bugs/bug239.go:15: undefined: Sizeof
-BUG: bug239
-
-=========== bugs/bug240.go
-BUG: errchk: command succeeded unexpectedly