]> 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 269ebdefb53e2ce87bcc01e03234855c0c843817..b978652a2b158573a5ad4d3dd028fbaf1e92f414 100644 (file)
@@ -1,58 +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() // ERROR "redeclared|no new"
                _ = i
        }
        {
                // change of type for f
                i, f, s := f3()
-               f, g, t := f3() // ERROR "redeclared|cannot assign|incompatible"
+               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"
+               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 := 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 := 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 := 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() // ERROR "redeclared|no new"
                _, _, _ = i, f, s
        }
 }