aboutsummaryrefslogtreecommitdiff
path: root/test/declbad.go
diff options
context:
space:
mode:
authorRob Pike <r@golang.org>2009-04-18 17:21:00 -0700
committerRob Pike <r@golang.org>2009-04-18 17:21:00 -0700
commit549a60046b54b14ed93f3fb9136beb007030cf15 (patch)
treeb8fc9a1edd33965ce67aafc5472c1df9ba685028 /test/declbad.go
parentae08a48719926dddb067dc567743f656fdff19e8 (diff)
downloadgo-549a60046b54b14ed93f3fb9136beb007030cf15.tar.gz
go-549a60046b54b14ed93f3fb9136beb007030cf15.zip
tests for redeclaration in :=
R=ken DELTA=71 (71 added, 0 deleted, 0 changed) OCL=27616 CL=27616
Diffstat (limited to 'test/declbad.go')
-rw-r--r--test/declbad.go50
1 files changed, 50 insertions, 0 deletions
diff --git a/test/declbad.go b/test/declbad.go
new file mode 100644
index 0000000000..8115b2cf6e
--- /dev/null
+++ b/test/declbad.go
@@ -0,0 +1,50 @@
+// errchk $G -e $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.
+
+// Incorrect short declarations and redeclarations.
+
+package main
+
+func f1() int { return 1 }
+func f2() (float, int) { return 1, 2 }
+func f3() (float, int, string) { return 1, 2, "3" }
+
+func main() {
+ {
+ // simple redeclaration
+ i := f1();
+ i := f1(); // ERROR "redeclared"
+ {
+ // change of type for f
+ i, f, s := f3();
+ f, g, t := f3(); // ERROR "redeclared"
+ }
+ {
+ // change of type for i
+ i, f, s := f3();
+ j, i, t := f3(); // ERROR "redeclared"
+ }
+ {
+ // no new variables
+ i, f, s := f3();
+ i, f := f2(); // ERROR "redeclared"
+ }
+ {
+ // single redeclaration
+ i, f, s := f3();
+ i := f1(); // ERROR "redeclared"
+ }
+ // double redeclaration
+ {
+ i, f, s := f3();
+ i, f := f2(); // ERROR "redeclared"
+ }
+ {
+ // triple redeclaration
+ i, f, s := f3();
+ i, f, s := f3(); // ERROR "redeclared"
+ }
+}