// compile // Copyright 2023 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 main type ResourceFunc struct { junk [8]int base assignmentBaseResource } type SubscriptionAssignmentResource struct { base assignmentBaseResource } type assignmentBaseResource struct{} //go:noinline func (a assignmentBaseResource) f(s string) ResourceFunc { println(s) return ResourceFunc{} } //go:noinline func (r SubscriptionAssignmentResource) Hi() ResourceFunc { rf := r.base.f("Hello world") rf.base = r.base return rf } func main() { var r SubscriptionAssignmentResource r.Hi() }