| Linux in-mum-web1499.main-hosting.eu 5.14.0-503.40.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Mon May 5 06:06:04 EDT 2025 x86_64 Path : /opt/golang/1.22.0/src/cmd/go/testdata/script/ |
| Current File : //opt/golang/1.22.0/src/cmd/go/testdata/script/cgo_badmethod_issue57926.txt |
[short] skip
[!cgo] skip
# Test that cgo rejects attempts to declare methods
# on the types C.T or *C.T; see issue #57926.
! go build
stderr 'cannot define new methods on non-local type C.T'
stderr 'cannot define new methods on non-local type \*C.T'
! stderr 'Alias'
-- go.mod --
module example.com
go 1.12
-- a.go --
package a
/*
typedef int T;
*/
import "C"
func (C.T) f() {}
func (recv *C.T) g() {}
// The check is more education than enforcement,
// and is easily defeated using a type alias.
type Alias = C.T
func (Alias) h() {}
func (*Alias) i() {}