mirror of
https://github.com/golang/go
synced 2024-11-12 08:40:21 -07:00
a5d7c1f45e
// ERROR "pattern1" "pattern2" means that there has to be one or more lines matching pattern1 and then excluding those, there have to be one or more lines matching pattern2. So if you expect two different error messages from a particular line, writing two separate patterns checks that both errors are produced. Also, errchk now flags lines that produce more errors than expected. Before, as long as at least one error matched the pattern, all the others were ignored. Revise tests to expect or silence these additional errors. R=lvd, r, iant CC=golang-dev https://golang.org/cl/4869044
59 lines
1.2 KiB
Go
59 lines
1.2 KiB
Go
// 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() (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
|
|
}
|
|
{
|
|
// change of type for f
|
|
i, f, s := f3()
|
|
f, g, t := f3() // ERROR "redeclared|cannot assign|incompatible"
|
|
_, _, _, _, _ = 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, j, t
|
|
}
|
|
{
|
|
// no new variables
|
|
i, f, s := f3()
|
|
i, f := f2() // ERROR "redeclared|no new"
|
|
_, _, _ = i, f, s
|
|
}
|
|
{
|
|
// single redeclaration
|
|
i, f, s := f3()
|
|
i := 1 // ERROR "redeclared|no new|incompatible"
|
|
_, _, _ = i, f, s
|
|
}
|
|
// double redeclaration
|
|
{
|
|
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
|
|
}
|
|
}
|