Source file test/typeparam/valimp.dir/a.go
1 // Copyright 2021 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package a 6 7 type Value[T any] struct { 8 val T 9 } 10 11 // The noinline directive should survive across import, and prevent instantiations 12 // of these functions from being inlined. 13 14 //go:noinline 15 func Get[T any](v *Value[T]) T { 16 return v.val 17 } 18 19 //go:noinline 20 func Set[T any](v *Value[T], val T) { 21 v.val = val 22 } 23 24 //go:noinline 25 func (v *Value[T]) Set(val T) { 26 v.val = val 27 } 28 29 //go:noinline 30 func (v *Value[T]) Get() T { 31 return v.val 32 } 33