go source for verification 2026-05-22
This commit is contained in:
124
test/fixedbugs/issue43384.go
Normal file
124
test/fixedbugs/issue43384.go
Normal file
@@ -0,0 +1,124 @@
|
||||
// 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()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user