mirror of
https://github.com/golang/go
synced 2024-11-18 11:44:45 -07:00
125 lines
1.9 KiB
Go
125 lines
1.9 KiB
Go
|
// errorcheck
|
||
|
|
||
|
// Copyright 2020 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.
|
||
|
|
||
|
package p
|
||
|
|
||
|
type T int
|
||
|
|
||
|
func (T) Mv() {}
|
||
|
func (*T) Mp() {}
|
||
|
|
||
|
type P1 struct{ T }
|
||
|
type P2 struct{ *T }
|
||
|
type P3 *struct{ T }
|
||
|
type P4 *struct{ *T }
|
||
|
|
||
|
func _() {
|
||
|
{
|
||
|
var p P1
|
||
|
p.Mv()
|
||
|
(&p).Mv()
|
||
|
(*&p).Mv()
|
||
|
p.Mp()
|
||
|
(&p).Mp()
|
||
|
(*&p).Mp()
|
||
|
}
|
||
|
{
|
||
|
var p P2
|
||
|
p.Mv()
|
||
|
(&p).Mv()
|
||
|
(*&p).Mv()
|
||
|
p.Mp()
|
||
|
(&p).Mp()
|
||
|
(*&p).Mp()
|
||
|
}
|
||
|
{
|
||
|
var p P3
|
||
|
p.Mv() // ERROR "undefined"
|
||
|
(&p).Mv() // ERROR "undefined"
|
||
|
(*&p).Mv() // ERROR "undefined"
|
||
|
(**&p).Mv()
|
||
|
(*p).Mv()
|
||
|
(&*p).Mv()
|
||
|
p.Mp() // ERROR "undefined"
|
||
|
(&p).Mp() // ERROR "undefined"
|
||
|
(*&p).Mp() // ERROR "undefined"
|
||
|
(**&p).Mp()
|
||
|
(*p).Mp()
|
||
|
(&*p).Mp()
|
||
|
}
|
||
|
{
|
||
|
var p P4
|
||
|
p.Mv() // ERROR "undefined"
|
||
|
(&p).Mv() // ERROR "undefined"
|
||
|
(*&p).Mv() // ERROR "undefined"
|
||
|
(**&p).Mv()
|
||
|
(*p).Mv()
|
||
|
(&*p).Mv()
|
||
|
p.Mp() // ERROR "undefined"
|
||
|
(&p).Mp() // ERROR "undefined"
|
||
|
(*&p).Mp() // ERROR "undefined"
|
||
|
(**&p).Mp()
|
||
|
(*p).Mp()
|
||
|
(&*p).Mp()
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func _() {
|
||
|
type P5 struct{ T }
|
||
|
type P6 struct{ *T }
|
||
|
type P7 *struct{ T }
|
||
|
type P8 *struct{ *T }
|
||
|
|
||
|
{
|
||
|
var p P5
|
||
|
p.Mv()
|
||
|
(&p).Mv()
|
||
|
(*&p).Mv()
|
||
|
p.Mp()
|
||
|
(&p).Mp()
|
||
|
(*&p).Mp()
|
||
|
}
|
||
|
{
|
||
|
var p P6
|
||
|
p.Mv()
|
||
|
(&p).Mv()
|
||
|
(*&p).Mv()
|
||
|
p.Mp()
|
||
|
(&p).Mp()
|
||
|
(*&p).Mp()
|
||
|
}
|
||
|
{
|
||
|
var p P7
|
||
|
p.Mv() // ERROR "undefined"
|
||
|
(&p).Mv() // ERROR "undefined"
|
||
|
(*&p).Mv() // ERROR "undefined"
|
||
|
(**&p).Mv()
|
||
|
(*p).Mv()
|
||
|
(&*p).Mv()
|
||
|
p.Mp() // ERROR "undefined"
|
||
|
(&p).Mp() // ERROR "undefined"
|
||
|
(*&p).Mp() // ERROR "undefined"
|
||
|
(**&p).Mp()
|
||
|
(*p).Mp()
|
||
|
(&*p).Mp()
|
||
|
}
|
||
|
{
|
||
|
var p P8
|
||
|
p.Mv() // ERROR "undefined"
|
||
|
(&p).Mv() // ERROR "undefined"
|
||
|
(*&p).Mv() // ERROR "undefined"
|
||
|
(**&p).Mv()
|
||
|
(*p).Mv()
|
||
|
(&*p).Mv()
|
||
|
p.Mp() // ERROR "undefined"
|
||
|
(&p).Mp() // ERROR "undefined"
|
||
|
(*&p).Mp() // ERROR "undefined"
|
||
|
(**&p).Mp()
|
||
|
(*p).Mp()
|
||
|
(&*p).Mp()
|
||
|
}
|
||
|
}
|