]> Cypherpunks.ru repositories - gostls13.git/blobdiff - test/declbad.go
cmd/compile/internal/inline: score call sites exposed by inlines
[gostls13.git] / test / declbad.go
index 04f5ac04b8971d517911c04c48ab8f5f67878519..b978652a2b158573a5ad4d3dd028fbaf1e92f414 100644 (file)
@@ -1,51 +1,67 @@
-// errchk $G -e $F.go
+// errorcheck
 
 // 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.
+// Test that incorrect short declarations and redeclarations are detected.
+// Does not compile.
 
 package main
 
-func f1() int { return 1 }
-func f2() (float, int) { return 1, 2 }
-func f3() (float, int, string) { return 1, 2, "3" }
+func f1() int                    { return 1 }
+func f2() (float32, int)         { return 1, 2 }
+func f3() (float32, int, string) { return 1, 2, "3" }
 
 func main() {
        {
                // simple redeclaration
-               i := f1();
-               i := f1();      // ERROR "redeclared|no new"
+               i := f1()
+               i := f1() // ERROR "redeclared|no new"
+               _ = i
        }
        {
                // change of type for f
-               i, f, s := f3();
-               f, g, t := f3();        // ERROR "redeclared|cannot assign|incompatible"
+               i, f, s := f3()
+               f, g, t := f3() // ERROR "redeclared|cannot assign|incompatible|cannot use"
+               _, _, _, _, _ = i, f, s, g, t
        }
        {
                // change of type for i
-               i, f, s := f3();
-               j, i, t := f3();        // ERROR "redeclared|cannot assign|incompatible"
+               i, f, s := f3()
+               j, i, t := f3() // ERROR "redeclared|cannot assign|incompatible|cannot use"
+               _, _, _, _, _ = i, f, s, j, t
        }
        {
                // no new variables
-               i, f, s := f3();
-               i, f := f2();   // ERROR "redeclared|no new"
+               i, f, s := f3()
+               i, f := f2() // ERROR "redeclared|no new"
+               _, _, _ = i, f, s
+       }
+       {
+               // multiline no new variables
+               i := f1
+               i := func() int { // ERROR "redeclared|no new|incompatible"
+                       return 0
+               }
+               _ = i
        }
        {
                // single redeclaration
-               i, f, s := f3();
-               i := f1();              // ERROR "redeclared|no new|incompatible"
+               i, f, s := f3()
+               i := 1 // ERROR "redeclared|no new|incompatible"
+               _, _, _ = i, f, s
        }
-               // double redeclaration
+       // double redeclaration
        {
-               i, f, s := f3();
-               i, f := f2();   // ERROR "redeclared|no new"
+               i, f, s := f3()
+               i, f := f2() // ERROR "redeclared|no new"
+               _, _, _ = i, f, s
        }
        {
                // triple redeclaration
-               i, f, s := f3();
-               i, f, s := f3();        // ERROR "redeclared|no new"
+               i, f, s := f3()
+               i, f, s := f3() // ERROR "redeclared|no new"
+               _, _, _ = i, f, s
        }
 }