2017-03-09 23:41:32 -07:00
|
|
|
// errorcheck
|
|
|
|
|
|
|
|
// Copyright 2017 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.
|
|
|
|
|
|
|
|
// Compiler rejected initialization of structs to composite literals
|
|
|
|
// in a non-static setting (e.g. in a function)
|
|
|
|
// when the struct contained a field named _.
|
|
|
|
|
|
|
|
package p
|
|
|
|
|
|
|
|
type T struct {
|
|
|
|
_ string
|
|
|
|
}
|
|
|
|
|
|
|
|
func ok() {
|
|
|
|
var x = T{"check"}
|
|
|
|
_ = x
|
|
|
|
_ = T{"et"}
|
|
|
|
}
|
|
|
|
|
|
|
|
var (
|
|
|
|
y = T{"stare"}
|
2022-09-26 13:47:41 -06:00
|
|
|
w = T{_: "look"} // ERROR "invalid field name _ in struct initializer|expected struct field name|unknown field _ in struct literal of type T"
|
2017-03-09 23:41:32 -07:00
|
|
|
_ = T{"page"}
|
2022-09-26 13:47:41 -06:00
|
|
|
_ = T{_: "out"} // ERROR "invalid field name _ in struct initializer|expected struct field name|unknown field _ in struct literal of type T"
|
2017-03-09 23:41:32 -07:00
|
|
|
)
|
|
|
|
|
|
|
|
func bad() {
|
2022-09-26 13:47:41 -06:00
|
|
|
var z = T{_: "verse"} // ERROR "invalid field name _ in struct initializer|expected struct field name|unknown field _ in struct literal of type T"
|
2017-03-09 23:41:32 -07:00
|
|
|
_ = z
|
2022-09-26 13:47:41 -06:00
|
|
|
_ = T{_: "itinerary"} // ERROR "invalid field name _ in struct initializer|expected struct field name|unknown field _ in struct literal of type T"
|
2017-03-09 23:41:32 -07:00
|
|
|
}
|