fix typo.
add scoping bug.
R=gri
OCL=14349
CL=14349
--- /dev/null
+// errchk $G $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.
+
+package main
+
+func f1() {
+ exit:
+ print("hi\n");
+}
+
+func f2() {
+ const c = 1234;
+}
+
+func f3() {
+ i := c; // BUG: compiles but should not. constant is not in scope in this function
+ goto exit; // BUG: compiles but should not. label is not in this function
+}
+
+func main() {
+ f3();
+}
=========== bugs/bug090.go
BUG: compilation succeeds incorrectly
+=========== bugs/bug091.go
+BUG: compilation succeeds incorrectly
+
=========== fixedbugs/bug015.go
fixedbugs/bug015.go:7: overflow converting constant to <int64>INT64
assert(r == 2.0, "r");
assert(s == "a", "s");
- assert(t == "b", "s");
+ assert(t == "b", "t");
}
+++ /dev/null
-// 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.
-
-// $G $D/$F.go && $L $F.$A && ./$A.out
-
-package main
-
-func assert(cond bool, msg string) {
- if !cond {
- print("assertion fail: " + msg + "\n");
- panic(1);
- }
-}
-
-const (
- x int = iota;
- y = iota;
- z = 1 << iota;
- f float = 2 * iota;
- g float = 4.5 * float(iota);
-);
-
-func main() {
- assert(x == 0, "x");
- assert(y == 1, "y");
- assert(z == 4, "z");
- assert(f == 6.0, "f");
- assert(g == 18.0, "g");
-}