mirror of
https://github.com/golang/go
synced 2024-11-24 15:40:09 -07:00
428ea6865c
A struct with a single field was considered as equivalent to the field type, which is incorrect is the field is blank. Fields with padding could make the compiler think some types are comparable when they are not. Fixes #5698. R=rsc, golang-dev, daniel.morsing, bradfitz, gri, r CC=golang-dev https://golang.org/cl/10271046
29 lines
599 B
Go
29 lines
599 B
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.
|
|
|
|
// Test that incorrect uses of the blank identifer are caught.
|
|
// Does not compile.
|
|
|
|
package _ // ERROR "invalid package name _"
|
|
|
|
var t struct {
|
|
_ int
|
|
}
|
|
|
|
type T struct {
|
|
_ []int
|
|
}
|
|
|
|
func main() {
|
|
_() // ERROR "cannot use _ as value"
|
|
x := _+1 // ERROR "cannot use _ as value"
|
|
_ = x
|
|
_ = t._ // ERROR "cannot refer to blank field"
|
|
|
|
var v1, v2 T
|
|
_ = v1 == v2 // ERROR "cannot be compared|non-comparable"
|
|
}
|