1
0
mirror of https://github.com/golang/go synced 2024-11-26 06:17:57 -07:00
go/test/fixedbugs/issue28268.go
Robert Griesemer 6761b1eb1b cmd/compile: better errors for structs with conflicting fields and methods
If a field and method have the same name, mark the respective struct field
so that we don't report follow-on errors when the field/method is accessed.

Per suggestion of @mdempsky.

Fixes #28268.

Change-Id: Ia1ca4cdfe9bacd3739d1fd7ca5e014ca094245ee
Reviewed-on: https://go-review.googlesource.com/c/144259
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2018-10-24 20:39:37 +00:00

31 lines
630 B
Go

// errorcheck
// Copyright 2018 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.
// Verify that follow-on errors due to conflicting
// struct field and method names are suppressed.
package p
type T struct {
a, b, c int
E
}
type E struct{}
func (T) b() {} // ERROR "field and method named b"
func (*T) E() {} // ERROR "field and method named E"
func _() {
var x T
_ = x.a
_ = x.b // no follow-on error here
x.b() // no follow-on error here
_ = x.c
_ = x.E // no follow-on error here
x.E() // no follow-on error here
}